CMD命令的MS-DOS等价物?

时间:2015-11-03 12:10:01

标签: batch-file cmd dos

最近我创建了一个小型BATCH游戏。

问题是,因为我使用Windows的CMD BATCH语言,游戏无法在DOS或DOSbox中正常运行。

开场很好,但是一旦我到达第一个播放器输入部分,我就会出现“语法错误”错误。

有没有人知道Windows CMD命令的MS-DOS等价物?

例如,在基于CMD的BATCH文件中,我使用“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等价物是什么?

1 个答案:

答案 0 :(得分:0)

我建议使用带有MSDOS 7.1的virtualbox而不是DOSBOX。 DOSBOX是一个模拟器,你将获得更少的麻烦,而Virtualbox将运行它,好像它运行一个运行MSDOS的实际IBM-PC

你的游戏中有一个主要缺陷:

SET /P CHOICE=ENTER

在DOS中,此命令不起作用。我知道一种解决方法,但我不知道如何制作方程if "%choice%"=="1"。它使用QBASIC。

PRINT ENTER; CHOICE$将完成这项工作。

PRINT回应ENTER 分号; CHOICE$设置变量CHOICE。您需要$变量才能包含字符串。

您可以在线找到大量的QBASIC教程。找到一个后,弄清楚如何在IF CHOICE $ = 1上执行if语句,打开一个内容为:dificulty3的文件。

我可以发布IF声明,因为我找到了一个。