bat脚本选择对应启动选项后如何自动关闭cmd窗口
问题根因
当前脚本选中对应模式启动游戏后,末尾写了GOTO Start逻辑,会直接跳转回初始选择菜单,因此cmd窗口会一直驻留无法自动关闭。
解决方法
将两个启动分支末尾的GOTO Start替换为exit命令即可。start是异步启动指令,不会等待游戏进程退出,执行到exit时就会自动关闭当前cmd窗口。
额外补了简单的非法输入容错,避免输入非1/2的内容时脚本报错跳出,你也可以根据自己的需求保留原有判断逻辑。
修改完成的完整代码
@echo off cls :start echo. echo 1. Multiplayer echo 2. Singleplayer echo. echo. set /p x=Pick: :: 输入非1/2的内容时回到选择页,避免报错 if not "%x%"=="1" if not "%x%"=="2" goto start GOTO Item_%x% :Item_1 start /MIN /D"D:\games\Battlefield 2142 - Deluxe Edition\mods\bf2142\Tools\BF2142Unlocker64" BF2142Unlocker.exe exit :Item_2 start /MIN /D"D:\games\Battlefield 2142 - Deluxe Edition" BF2142_offline_4gb.exe exit
注意点
- 原脚本里的
Singeplayer存在拼写错误,上面代码里修正为了正确的Singleplayer,不需要的话可以自行改回 - 路径里的双引号直接用英文半角双引号即可,不需要转义
- 如果不需要非法输入判断,保留你原来的
IF '%x%' == '%x%' GOTO Item_%x%判断逻辑也能正常实现启动后关窗的效果,只是输错选项会弹出找不到对应标签的报错
内容的提问来源于stack exchange,提问作者sanjiamca
相关产品推荐
相关产品推荐

