如何使批处理文件只在应用程序关闭后运行



这个用例是不必要的定义,但我对脚本很感兴趣,我正在努力学习。我发现,当我尝试在那些让我的生活更轻松但又不太重要的事情上练习时,我的动机是最有效的!

我创建了一个执行以下操作的批处理文件:

  • 推出Steam游戏
  • 将显示器切换到电视(我把电视放在电脑旁边的墙上(
  • 将音频源切换到耳机

效果很好,但我想改进它,因为目前,当我玩完游戏时,显示器仍然在我的电视上。我正在寻找一种方法,使批处理文件只在(游戏(不再运行后运行,以将图像移回我的监视器。

本质上,它会去:

  1. 运行批处理文件
  2. 游戏开始
  3. 显示移动到电视(我使用一个名为MultimonitorTool的小应用程序,通过名为TV.cfg的设置配置来实现这一点(
  4. 音频源更改为耳机(我使用SoundSwitch和游戏配置文件来设置源(
  5. 结束游戏并退出
  6. 将显示移回监视器的批处理文件(已配置为pc.cfg(运行,但只是因为game.exe不再打开

我在玩"/等待";但我没能让它发挥作用。在下面的脚本中,前两个命令用于打开Notepad.exe(为测试而更改(,然后TV.cfg将图像移动到电视上。这是关于等待Notepad.exe运行PC.cfg以将图像移回不起作用的监视器的部分。

我把应用程序改成记事本只是为了测试,这就是我尝试的:

@echo off
cd C:Windowssystem32
start Notepad.exe
cd C:UsersRobDownloadsMultiMonitorTool
start MultiMonitorTool.exe /LoadConfig "C:UsersRobDownloadsMultiMonitorToolTV.cfg" 
cd C:UsersRobDownloadsMultiMonitorTool
start MultiMonitorTool.exe /LoadConfig "C:UsersRobDownloadsMultiMonitorToolPC.cfg" /wait "C:Windowssystem32Notepad.exe"
exit

有没有一种简单的方法来实现我想要做的事情?(我是一个完全没有受过任何教育的人!这纯粹是一种爱好(

为了知道应用程序是否正在运行,可以使用tasklist,使用以下命令可以找到更多信息:

tasklist /?

您编写了一个while循环,用于检查您的应用程序是否正在运行(不要忘记放置timeout 1,因为它会让您的循环等待一秒钟,否则您可能会"任务过重"您的电脑:-(。

这里有一个例子。

相关内容

最新更新