批处理脚本 - 关闭Cmd.exe窗口并重新启动

时间:2018-02-04 13:35:25

标签: windows batch-file cmd restart

我有一个启动程序(bat)的批处理文件脚本,X秒后批处理脚本关闭程序(exe)并重新启动

这是我的代码:

:loop
start "1.bat" "C:\1\1.bat"
Timeout 10
taskkill /f /im program.exe
goto loop

如果程序结束,我希望Cmd.exe窗口关闭,但只有" 1.bat"窗口应该关闭。我无法为我的" 1.bat"找到指定的cmd窗口。在任务管理器中处理它以关闭它。

如果我使用&&和&&amp ;;关闭 programm.exe 退出批次没有重启!

1 个答案:

答案 0 :(得分:0)

你可以做两件事之一。

1 - 如果您有1.bat的访问权限(即,它不是只读的或实际上不是.exe),请在运行exit之后添加program.exe

2 - 否则,如果由于某种原因无法修改1.bat,则可能需要添加以下命令行:

taskkill /FI "IMAGENAME eq cmd.exe" /FI "WINDOWTITLE eq 1.bat"

因此,您的批处理脚本将如下所示:

:loop
start "1.bat" "C:\1\1.bat"
Timeout 10
taskkill /f /im program.exe
taskkill /FI "IMAGENAME eq cmd.exe" /FI "WINDOWTITLE eq 1.bat"
goto loop

或类似的。基本上/FI是过滤器开关,您可以指定根据" IMAGENAME"进行过滤。 ( eq uals" cmd.exe")和" WINDOWTITLE" ( eq uals" 1.bat")