我需要一个批处理(.bat)文件,如果程序没有打开就启动它,如果已经打开就停止它。我玩的游戏在关闭启动器后会一直在后台运行。我必须使用任务管理器结束它,否则无法启动它,因为Steam不允许同一应用程序打开两次。所以我希望有一个批处理文件来实现这个功能,并将其绑定到一个宏中。
要检查您的程序是否正在运行:(这里以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%"
@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
所以我弄明白了:
@echo off
tasklist /fi "imagename eq Launcher.exe" |find ":" > nul
if errorlevel 0 taskkill /f /im "Launcher.exe" && exit
start steam://rungameid/243870
exit
背后的逻辑是,如果你能终止进程,那么在创建新的进程会话之前结束提示。但如果进程无法终止,则创建一个新的进程会话,然后结束提示。
Laucher.exe
。taskkill /F/IM "steam.exe"
的结果会如何? - SachaDee