我的.bat无法正确执行,如果有任何错误,请报告
文件名-games.bat
@echo off
G:
:start
cls
echo DOS Games
echo 1. DOOMS
echo 2. Prince of Persia
set /p choice=Your Choice is
pause
if %choice% == 1 goto 1
if %choice% == 2 goto 2
if %choice% == %choice% goto start
:1
cd PRINCE~1
PRINCE.EXE
exit
:2
cd DOOMS
DOOM.EXE
exit
我只想通过选择他们的号码来运行游戏
我在DOSBOX中运行.bat,它可能与windows bat语法不兼容
还有任何其他建议对我来说都可以
我已经厌倦了为许多游戏一次又一次地编写新的配置文件和shell脚本,所以我决定编写一个.bat代码,它可以在DOSBOX上运行,并逐个加载游戏
选项命令可用于dosbox,可能是实现您想要的目标的唯一方法:
mount G .
G:
:start
rem --- descriptions ---
choice /c12 /s Your Choice is [1-2]: /n
if errorlevel 2 goto two
if errorlevel 1 goto one
goto start
:one
cd PRINCE~1
PRINCE.EXE
exit
:two
cd DOOMS
DOOM.EXE
exit
您可以使用if errorlevel
检查所选选项,但请注意,错误级别与equal or bigger than..
类似,您应该先从较大的数字开始。您只能使用IF ERRORLEVEL
检查结果,因为%ERRORLEVEL%
变量不可访问,并且您不能在dosbox下使用三个字母的比较运算符。
我注意到的另一件事是,没有设备的映射。要访问dosbox下的文件,您需要先装载某个目录作为驱动器。在这里,我安装了G:作为当前目录。(或者它可能安装在conf文件中?(
我的一些调整:
@echo off
:start
G:
cls
echo .::::: .:::: .:: ::
echo .:: .:: .:: .:: .:: .::
echo .:: .:: .:: .:: .::
echo .:: .:: .:: .:: .::
echo .:: .:: .:: .:: .::
echo .:: .:: .:: .:: .:: .::
echo .::::: .:::: .:: ::
echo.
echo.
echo .:::: .: .:: .:: .:::::::: .:: ::
echo .: .:: .: :: .: .:: .::: .:: .:: .::
echo .:: .: .:: .:: .:: . .:: .:: .::
echo .:: .:: .:: .:: .:: .:: .:::::: .::
echo .:: .:::: .:::::: .:: .:: .: .:: .:: .::
echo .:: .: .:: .:: .:: .:: .:: .:: .::
echo .::::: .:: .:: .:: .:: .:::::::: .:: ::
echo.
echo.
pause
cls
echo List of Games :
echo.
echo 1. Prince of Persia
echo 2. DOOMS
echo.
echo Select the Game [1-2]
choice /c12 /s "::" /n
cls
if errorlevel 2 goto two
if errorlevel 1 goto one
:one
cd PRINCE~1
PRINCE.EXE
:two
cd DOOMS
DOOM.EXE
rem --- without cd.. we cannot switch games bcz each time we enter the game folder ---
cd ..
goto start