我不是批处理编码器,但是我正在尝试创建一个执行后执行以下操作的脚本:
- 启用专用视频卡(笔记本电脑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
更改为其他值或适当添加中间授权。