我正在运行具有以下两行的批处理文件:
start C:\Users\Yiwei\Downloads\putty.exe -load "MathCS-labMachine1"
"C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow
Run Code Online (Sandbox Code Playgroud)
此批处理文件用于运行Xming应用程序,然后运行PuTTY应用程序,以便我可以通过SSH连接到我大学的计算机实验室.
但是,如果我运行它并且Xming尚未打开,一旦我从PuTTY终端退出,cmd窗口仍保持打开状态.只有当我已经运行Xming时,关闭PuTTY终端时才会关闭cmd窗口.我已经尝试添加exit
到批处理文件的最后一行,但无济于事.
Ahm*_*mad 111
将批处理文件修改为START
两个程序,而不是START
一个和CALL
另一个程序
start C:\Users\Yiwei\Downloads\putty.exe -load "MathCS-labMachine1"
start "" "C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow
Run Code Online (Sandbox Code Playgroud)
如果你这样运行它,启动程序后没有CMD窗口会保持打开状态.
Qui*_*rks 15
如果您有code
与 VSCode 一起安装的命令:
echo | code . | exit /b
Run Code Online (Sandbox Code Playgroud)
如果您以管理员身份运行脚本:
cd /d %~dp0
echo | code . | exit /b
Run Code Online (Sandbox Code Playgroud)
使用start /b
通常可以允许其他程序关闭 cmd 窗口。
小智 9
对于新手观看: -
*如果要确保文件已运行,并且在2秒后关闭DOS窗口,则可以添加以下行:
超时2> nul
出口
解决方案:例如,有一个名为BgInfo的小免费代理,它将显示有关您计算机的所有信息.假设它位于名为C:\ BgInfo的目录中.要使用"/ popup"开关从批处理文件中运行它.....并在DOS窗口仍然运行时关闭,请使用:
启动"""C:\ BgInfo\BgInfo.exe"/ popup
出口
如果你想将命令分成每个文件一个命令,你可以这样做
cmd /c start C:\Users\Yiwei\Downloads\putty.exe -load "MathCS-labMachine1"
Run Code Online (Sandbox Code Playgroud)
在另一个文件中,你可以做
cmd /c start "" "C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow
Run Code Online (Sandbox Code Playgroud)
命令 cmd /c 将在 exe 运行后关闭命令提示符窗口。
要立即关闭当前的 cmd 窗口,只需添加为最后一个命令/行:
move nul 2>&0
Run Code Online (Sandbox Code Playgroud)
尝试移动nul
到任何地方并将stderr重定向到stdin
将导致当前窗口 cmd.exe 被关闭
这与关闭 bat或使用goto :EOF
或退出它不同Exit /b
我什至打开了一个问题来寻找可以解释行为的答案。 那会是一个错误吗?执行时立即关闭当前 cmd 窗口:move nul 2>&0