我不是批处理编码器,但我正在尝试创建一个执行以下操作的脚本:
以下代码适用于像notepad.exe这样的简单程序,因为它们是不可动摇的:
// enable dedicated GPU
devcon enable "@PCI\VEN_10DE&DEV_1C8C&SUBSYS_8259103C&REV_A1\4&3455E2C8&0&0008"
// start notepad and wait for its termination
start /b /wait "" "C:\Windows\notepad.exe" || goto QUIT
:QUIT
// disable dedicated GPU
devcon disable "@PCI\VEN_10DE&DEV_1C8C&SUBSYS_8259103C&REV_A1\4&3455E2C8&0&0008"
exit
问题在于,如果我为某些重型视频游戏(例如BF1)更改“notepad.exe”需要一些时间才能启动,则脚本不会等待游戏的实际启动并继续执行其他命令。结果是:
有没有办法让第二个命令(开始/等待)等待游戏的实际发布?
我需要这个脚本的原因是: NVIDIA Optimus + Windows 10 =微型冻结
PS:对不起我的英语。
答案 0 :(得分:1)
// start game launcher
start /b /wait "" "launcherexecutable"
:wait
timeout 5 >nul
tasklist |findstr /i /L /c:"launcherexecutable" /c:"gameexecutable" >nul
if not errorlevel 1 goto wait
:QUIT
应该反复延迟(5秒),然后查看 启动器或游戏可执行文件是否正在运行,如果是,则重复循环。
因此,一旦游戏可执行文件完成,应继续quit
。
显然,将5
更改为其他值或根据需要添加中间可执行文件。