CMD 命令的 MS-DOS 等价物?
MS-DOS Equivalents of CMD Commands?
最近我创建了一个小的 BATCH 游戏。
问题是,因为我使用的是 Windows' CMD BATCH 语言,游戏无法在 DOS 或 DOSbox 中正常 运行。
开头没问题,但是当我进入第一个玩家输入部分时,出现 "bad syntax" 错误。
有谁知道 Windows CMD 命令的 MS-DOS 等价物?
例如,在基于 CMD 的 BATCH 文件中,我会使用 "set ..." 来设置输入。 "set..." 的 DOS 版本是什么?
:start
cls
echo GUESSING GAME
echo.
echo Created By: John Ingram
echo Copyright 2015
echo.
pause
goto :begin
:begin
cls
echo Please enter the number of your desired difficulty setting.
echo.
echo 1) Easy: Guess a number from 1-10
echo 2) Normal: Guess a number from 1-100
echo 3) Hard: Guess a number from 1-1000
echo.
echo Type "Quit" to exit the game.
echo.
echo Have Fun!
set /p choice=Enter:
if %choice%==1 (
goto :difficulty1
)
if %choice%==2 (
goto :difficulty2
)
if %choice%==3 (
goto difficulty3
)
if %choice%==quit (
goto :endgame
)
if %choice%==Quit (
goto :endgame
)
if %choice% GTR 3 (
echo.
echo I do not understand that command.
echo.
pause
goto :begin
)
pause
一旦玩家在开始游戏后按下一个键并被带到第一个输入部分 (:begin),问题就开始了。
这与 DOS/DOSbox 无法将“/p”注册为 SET 命令有什么关系吗?
如果是,对应的 DOS 是什么?
我建议在 MSDOS 7.1 中使用 virtualbox 而不是 DOSBOX。你会遇到更少的麻烦,因为 DOSBOX 是一个模拟器,而 Virtualbox 会 运行 它就好像它 运行 一个真正的 IBM-PC 运行ning MSDOS.
您的游戏存在 1 个重大缺陷:
SET /P CHOICE=ENTER
在DOS下,这个命令不起作用。我知道一个解决方法,但我不知道如何制作方程式 if "%choice%"=="1"
。它使用 QBASIC。
PRINT ENTER; CHOICE$
就可以了。
PRINT
呼应 ENTER
.
分号 ; CHOICE$
设置变量 CHOICE。变量需要 $
才能包含字符串。
您可以在线找到大量 QBASIC 教程。找到一个后,弄清楚如何在 IF CHOICE$ = 1 上执行 if
语句以打开包含 :dificulty3
.
内容的文件
我可能 post 我找到了一个 IF 语句。
最近我创建了一个小的 BATCH 游戏。
问题是,因为我使用的是 Windows' CMD BATCH 语言,游戏无法在 DOS 或 DOSbox 中正常 运行。
开头没问题,但是当我进入第一个玩家输入部分时,出现 "bad syntax" 错误。
有谁知道 Windows CMD 命令的 MS-DOS 等价物?
例如,在基于 CMD 的 BATCH 文件中,我会使用 "set ..." 来设置输入。 "set..." 的 DOS 版本是什么?
:start
cls
echo GUESSING GAME
echo.
echo Created By: John Ingram
echo Copyright 2015
echo.
pause
goto :begin
:begin
cls
echo Please enter the number of your desired difficulty setting.
echo.
echo 1) Easy: Guess a number from 1-10
echo 2) Normal: Guess a number from 1-100
echo 3) Hard: Guess a number from 1-1000
echo.
echo Type "Quit" to exit the game.
echo.
echo Have Fun!
set /p choice=Enter:
if %choice%==1 (
goto :difficulty1
)
if %choice%==2 (
goto :difficulty2
)
if %choice%==3 (
goto difficulty3
)
if %choice%==quit (
goto :endgame
)
if %choice%==Quit (
goto :endgame
)
if %choice% GTR 3 (
echo.
echo I do not understand that command.
echo.
pause
goto :begin
)
pause
一旦玩家在开始游戏后按下一个键并被带到第一个输入部分 (:begin),问题就开始了。
这与 DOS/DOSbox 无法将“/p”注册为 SET 命令有什么关系吗?
如果是,对应的 DOS 是什么?
我建议在 MSDOS 7.1 中使用 virtualbox 而不是 DOSBOX。你会遇到更少的麻烦,因为 DOSBOX 是一个模拟器,而 Virtualbox 会 运行 它就好像它 运行 一个真正的 IBM-PC 运行ning MSDOS.
您的游戏存在 1 个重大缺陷:
SET /P CHOICE=ENTER
在DOS下,这个命令不起作用。我知道一个解决方法,但我不知道如何制作方程式 if "%choice%"=="1"
。它使用 QBASIC。
PRINT ENTER; CHOICE$
就可以了。
PRINT
呼应 ENTER
.
分号 ; CHOICE$
设置变量 CHOICE。变量需要 $
才能包含字符串。
您可以在线找到大量 QBASIC 教程。找到一个后,弄清楚如何在 IF CHOICE$ = 1 上执行 if
语句以打开包含 :dificulty3
.
我可能 post 我找到了一个 IF 语句。