我正在使用 TinyWeb 服务器。 我使用批处理文件 START_tiny.bat 运行它:
c:
cd\
cd tiny
cd bin
tiny c:\tiny\root 8080
exit
问题是tiny.exe执行后,控制台不会关闭,所以挂在这里: 我可以手动关闭控制台窗口,它将继续按预期运行,但我只是想知道批处理文件中是否有一种方法可以确保它在调用程序后关闭。
编辑: 解决方案是:
cmd /c start tiny c:\tiny\root 8080
只要 cmd.exe
正在运行,
Windows 命令处理器
tiny.exe
就会停止处理批处理文件并等待其终止,即使该应用程序是 GUI 应用程序,未打开任何窗口或未打开 GUI 窗口。
命令
exit
根本没有必要,只是不利于调试批处理文件。
最好使用快捷方式文件(*.lnk)来启动 TinyWeb 服务器。快捷方式文件属性中的 Target 将为
C:\tiny\bin\tiny.exe C:\tiny\root 8080
,Start in 将为 C:\tiny\bin
或 C:\tiny\root
或启动 TinyWeb 时的当前目录。 tiny.exe
上没有显示控制台窗口,这不是控制台应用程序,我不知道因为没有下载并安装此应用程序。
命令
start
可以在批处理文件中使用,用于通过 cmd.exe
将 TinyWeb服务器作为单独的进程启动,而无需等待其终止。
以下命令行之一可以在批处理文件中使用:
start C:\tiny\bin\tiny.exe C:\tiny\root 8080
start /DC:\tiny\bin tiny.exe C:\tiny\root 8080
start /D C:\tiny\bin tiny.exe C:\tiny\root 8080
start "TinyWeb server" C:\tiny\bin\tiny.exe C:\tiny\root 8080
start "TinyWeb server" "C:\tiny\bin\tiny.exe" "C:\tiny\root" 8080
start "TinyWeb server" /D"C:\tiny\bin" tiny.exe "C:\tiny\root" 8080
start "TinyWeb server" /D "C:\tiny\bin" tiny.exe "C:\tiny\root" 8080
打开命令提示符,运行start /?
并阅读输出帮助以获取上述命令行的说明。参数
/D
分别指定启动的可执行文件的启动于和当前目录。可以紧接在
/D
之后指定,也可以与开关之间用空格分隔。Command
start
将引号中的第一个字符串解释为窗口标题。因此,即使由于启动的应用程序是 Windows GUI 应用程序而没有打开控制台窗口,也有必要在其他参数之一用双引号括起来时显式指定双引号中的窗口标题。对于由命令
""
作为单独进程启动的 GUI 应用程序,仅用
start
指定的空标题字符串就足够了。命令行
cd /D "C:\tiny\bin"
可用于将当前目录更改为
C:\tiny\bin
,即使当前目录位于不同的驱动器上。在 cmd 窗口中运行时的帮助输出
cd /?
解释了参数
/D
,以便在必要时更改驱动器,而不仅仅是当前驱动器上的当前目录。