我有一个很棒的批处理切换程序,它会在运行时显示隐藏文件,然后在再次运行时隐藏隐藏文件。
我想知道我是否可以创建一个类似的文件,在最初运行时终止一系列工作应用程序(例如云服务、印象笔记等)。然后当我玩完游戏或正在做的不需要所有这些程序的事情时重新启动这些相同的应用程序。
有了它就超级方便了。可以这样做吗?因为我看到的大多数启动/终止命令都在单独的窗口中,我只想用热键来控制其中一个。
答案1
以下是您可以使用的单行批处理文件:
tasklist /fi "ImageName eq notepad.exe" | find /i "notepad.exe" && taskkill /fi "ImageName eq notepad.exe" || start "" notepad.exe
它将终止所有正在运行的记事本实例,如果不存在,则将启动记事本。根据需要进行修改。(例如,如果您想做更复杂的事情,请使用如果别的循环,检查错误级别等等。更多信息请参见if /?
。
答案2
您需要一些东西来告诉.bat
文件它之前已经运行过。您可以向文件添加注册表项、环境变量、值.txt
……没有限制,您只需将值存储在关闭时不会丢失的东西中.bat
。最简单的解决方案:
@echo off
if exist ran_once.txt (
start process1.exe
start "path/to/process2.exe"
...
del /q ran_once.txt
) else (
taskkill /f /im process1.exe
taskkill /f /im process2.exe
...
echo foo>ran_once.txt
)
确保 ran_once.txt 与 位于同一文件夹中.bat
,或者使用full/path/to/ran_once.txt
一个更优雅的解决方案是,pause
终止所有进程后,打开你的游戏或其他什么,当你从游戏返回时,只需按下文件上的任意键.bat
即可继续运行并重新启动所有进程。