对.bat文件的有条件执行



我的.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

最新更新