我需要一个批处理(.bat)文件,如果程序未打开则打开程序,如果程序打开则停止该程序。我有一个游戏,当发射器关闭时,它在后台保持打开状态。我必须以任务管理器结束它,否则我无法启动它,因为当应用程序打开两次时它不喜欢它(它不允许它),所以我想要一个批处理文件来执行此操作对我来说,然后将它绑定到一个宏。
答案 0 :(得分:8)
检查您的程序是否正在运行:(此处为notepad.exe
的示例)
@echo off
Set "MyProcess=Notepad.exe"
tasklist | find /i "%MyProcess%">nul && echo %MyProcess% Is running || echo %MyProcess% Is not running
所以你可以这样做:
@echo off
Set "MyProcess=Notepad.exe"
tasklist | find /i "%MyProcess%">nul && Taskkill /F/IM "%MyProcess%" || start "%MyProcess%"
答案 1 :(得分:1)
这是另一种方法:
@echo off
tasklist /fi "imagename eq Launcher.exe" |find "." > nul && taskkill /f /im "Launcher.exe" & goto :EOF
tasklist /fi "imagename eq Launcher.exe" |find "." > nul || start "" steam://rungameid/243870 & goto :EOF
答案 2 :(得分:-1)
所以我想出来了:
@echo off
tasklist /fi "imagename eq Launcher.exe" |find ":" > nul
if errorlevel 0 taskkill /f /im "Launcher.exe" && exit
start steam://rungameid/243870
exit
它背后的逻辑是,如果您可以终止进程,则在创建进程的新会话之前结束提示。但如果该过程无法被杀死,则进行新的会话,然后结束提示。