Batch file 创建.batch文件以启动/停止程序?

Batch file 创建.batch文件以启动/停止程序?,batch-file,Batch File,我需要一个批处理(.bat)文件,该文件可以在程序未打开时打开该程序,并在程序打开时停止该程序。我有一个游戏,当发射器关闭时,它在后台保持打开状态。我必须用task manager结束它,否则我不能启动它,因为steam不喜欢应用程序打开两次(它不允许),所以我想要一个批处理文件来帮我完成这项工作,然后将它绑定到宏。检查程序是否正在运行:(这里是一个带有notepad.exe的示例) @echo关闭 设置“MyProcess=Notepad.exe” 任务列表|查找/i“%MyProcess%”

我需要一个批处理(.bat)文件,该文件可以在程序未打开时打开该程序,并在程序打开时停止该程序。我有一个游戏,当发射器关闭时,它在后台保持打开状态。我必须用task manager结束它,否则我不能启动它,因为steam不喜欢应用程序打开两次(它不允许),所以我想要一个批处理文件来帮我完成这项工作,然后将它绑定到宏。

检查程序是否正在运行:(这里是一个带有
notepad.exe
的示例)

@echo关闭
设置“MyProcess=Notepad.exe”
任务列表|查找/i“%MyProcess%”nul&&echo%MyProcess%正在运行| echo%MyProcess%未运行
所以你可以这样做:

@echo关闭
设置“MyProcess=Notepad.exe”
任务列表|查找/i“%MyProcess%”>nul和(&Taskkill/F/IM“%MyProcess%”|启动“%MyProcess%”
所以我想:

@echo off
tasklist /fi "imagename eq Launcher.exe" |find ":" > nul
if errorlevel 0 taskkill /f /im "Launcher.exe" && exit
start steam://rungameid/243870
exit

其背后的逻辑是,如果可以终止进程,则在创建进程的新会话之前结束提示。但如果无法终止进程,则对其进行新会话,然后结束提示。

这是另一种方法:

@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

我理解taskkill不要求程序在运行该命令时处于活动状态。然而,正如OP所问,有没有办法检查程序是否正在运行?我很感兴趣。好吧,我已经做了很多,它以任何方式运行程序,但永远不会结束它。这是我的旧代码:@echo off tasklist/fi“imagename eq Launcher.exe”| find“>num if errorlevel 1 taskkill/f/im“Launcher.exe”if errorlevel 0 startsteam://rungameid/243870 Exit您正在删除此代码中的
Laucher.exe
taskkill/F/IM“steam.exe”
No我当前拥有的代码会打开Launcher.exe,当我再次运行它时,(当Launcher打开时),它会关闭Launcher并重新打开它?是的,但是由
laucher.exe打开的进程的名称是什么