【发布时间】:2021-08-16 08:43:11
【问题描述】:
这个用例是不必要的定义,但我对脚本产生了兴趣,我正在努力学习。我发现当尝试在让我的生活更轻松但不是超级重要的事情上练习时,我的动力最有效!
我创建了一个执行以下操作的批处理文件:
- 启动 Steam 游戏
- 将我的显示器切换到我的电视(我的电视在我的电脑旁边的墙上)
- 将我的音频源切换到我的耳机
效果很好,但我想改进它,因为当我玩完游戏时,显示器仍然在我的电视上。我正在寻找的是一种仅在(游戏)不再运行以将图像移回我的显示器后才运行批处理文件的方法。
本质上,它会:
- 运行批处理文件。
- 游戏打开
- 显示器移动到电视(我使用一个名为 MultimonitorTool 的小应用程序通过一个名为 tv.cfg 的设置配置来执行此操作)
- 音频源更改为耳机(我使用 SoundSwitch 和游戏配置文件来设置源)
- 玩完游戏退出。
- 将显示器移回显示器的批处理文件(已将其配置为 pc.cfg)运行,但只是因为 game.exe 不再打开。
我在玩“/wait”,但我无法让它工作。在下面的脚本中,前 2 个命令用于打开 Notepad.exe(为测试而更改),然后 TV.cfg 将图像移动到电视。这是关于等待 Notepad.exe 运行 PC.cfg 以将图像移回我的显示器的部分,这不起作用。
我将应用程序更改为记事本只是为了测试,这就是我正在尝试的:
@echo off
cd C:\Windows\system32
start Notepad.exe
cd C:\Users\Rob\Downloads\MultiMonitorTool
start MultiMonitorTool.exe /LoadConfig "C:\Users\Rob\Downloads\MultiMonitorTool\TV.cfg"
cd C:\Users\Rob\Downloads\MultiMonitorTool
start MultiMonitorTool.exe /LoadConfig "C:\Users\Rob\Downloads\MultiMonitorTool\PC.cfg" /wait "C:\Windows\system32\Notepad.exe"
exit
有没有一种简单的方法来实现我想要做的事情? (我完全是个菜鸟,没有受过任何这些东西的教育!这纯粹是一种爱好)
【问题讨论】:
-
您检查过 Windows 任务计划程序吗?
-
简单明了,不要在批处理文件的最后一个命令中使用
START命令。它将等待最后一次运行的程序完成,然后在您关闭程序后执行任何命令。 -
a) 切换到电视,b)
start /wait notepad.exe,c) 切换回显示器。注意:它确实适用于notepad,并且它可能适用于您的游戏(或不适用 - 取决于游戏的编写方式)。如果没有,检查游戏是否仍在运行(tasklist在循环中)是要走的路。 -
感谢 Stephan,尝试了您的建议,并且(至少对于记事本而言)它正在工作。等我下班回家后我会再玩弄它 lol
标签: batch-file windows-10