使批处理"START /WAIT"命令等待程序启动



我不是批处理编码器,但是我正在尝试创建一个执行后执行以下操作的脚本:

  • 启用专用视频卡(笔记本电脑NVIDIA卡(
  • 运行特定的视频游戏并等待其结束
  • 终止游戏后,禁用DGPU

以下代码在Notepad.exe(例如Notepad.exe(中效果很好,因为它们无生命启动:

// enable dedicated GPU
devcon enable "@PCIVEN_10DE&DEV_1C8C&SUBSYS_8259103C&REV_A14&3455E2C8&0&0008"
// start notepad and wait for its termination
start /b /wait "" "C:Windowsnotepad.exe" || goto QUIT
:QUIT
// disable dedicated GPU
devcon disable "@PCIVEN_10DE&DEV_1C8C&SUBSYS_8259103C&REV_A14&3455E2C8&0&0008"
exit

问题是,如果我更改一些重型视频游戏(例如BF1(的" Notepad.exe",这需要一些时间才能开始,那么脚本就不会等待游戏的实际启动,并使用其他命令进行进行。因此结果是:

  • GPU已打开
  • GPU已关闭(脚本退出(
  • 一段时间游戏开始(使用Intel Graphics(

有没有办法制作第二个命令(开始/等待(等待游戏的实际启动?

我需要此脚本的原因是: nvidia optimus Windows 10 = Micro Freezes

ps:对不起我的英语。

// 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更改为其他值或适当添加中间授权。

最新更新