CMD 命令的 MS-DOS 等效项?
Posted
技术标签:
【中文标题】CMD 命令的 MS-DOS 等效项?【英文标题】:MS-DOS Equivalents of CMD Commands? 【发布时间】:2016-02-03 14:03:21 【问题描述】:最近我创建了一个小型 BATCH 游戏。
问题是,因为我使用的是 Windows 的 CMD BATCH 语言,所以游戏无法在 DOS 或 DOSbox 中正常运行。
开头很好,但是一旦我进入第一个玩家输入部分,我就会收到“语法错误”错误。
有谁知道 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 等价物是什么?
【问题讨论】:
你应该放一些代码示例 dosbox 的命令即使与 MS-DOS 相比也非常有限,因此您可能无论如何都需要调用 cmd.exe。 和cmd.exe
是ms-dos
的超集
看看here
@nurfarazi - 我回家后会发布一个示例。
【参考方案1】:
我建议在 MSDOS 7.1 中使用 virtualbox 而不是 DOSBOX。由于 DOSBOX 是一个模拟器,因此您会遇到更少的麻烦,而 Virtualbox 会像运行运行 MSDOS 的实际 IBM-PC 一样运行它。
你的游戏有 1 个主要缺陷:
SET /P CHOICE=ENTER
在 DOS 中,此命令不起作用。我知道一种解决方法,但我不知道如何制作等式 if "%choice%"=="1"
。它使用 QBASIC。
PRINT ENTER; CHOICE$
将完成这项工作。
PRINT
回显ENTER
。
分号; CHOICE$
设置变量CHOICE。您需要 $
变量才能包含字符串。
您可以在网上找到大量的 QBASIC 教程。找到一个后,弄清楚如何在 IF CHOICE$ = 1 上执行if
语句以打开包含:dificulty3
内容的文件。
我可能会发布一个 IF 声明,这是我找到的。
【讨论】:
感谢您的信息。我将检查 QBASIC 和 VirtualBox。我只有一个问题:所以为了制作一个与 DOS 兼容的 BATCH 文件,我不应该使用任何普通的 Batch 脚本,而是基于 QBASIC 编写所有内容?或者我应该混合使用两者(玩家输入在 QBASIC 中完成,但其他一切都在正常 BATCH 中)? 我会做一个混合,因为转换会容易得多,但如果命令不起作用,那么我会在 QBASIC 中做,因为它有一个很大的命令库,可能适合需要。 据我所知,QBASIC 不能在 64 位 Windows 上运行。要同时兼容 DOS 和 Windows,您必须只使用 DOS 命令(尽管我不太确定它们是否都可以在 Windows 中工作)。如果您只想为 DOS 编写游戏,我会选择 QBASIC 而忘记 Batch。 @Stephan 考虑到 DOS 命令在 Windows 中可能有效也可能无效,而 QBASIC 在 Windows 中无效,最好只关注 DOS。话虽这么说,就 DOS 命令与 QBASIC 而言,运行使用 DOS 命令编写的程序会不会很麻烦,还是 QBASIC 完全被 DOS 支持? @RookieTEC9 感谢您提供信息。我可能会专注于为 DOS 做一些事情,因为似乎试图在 DOS 和 Windows 上做一些事情可能很麻烦。以上是关于CMD 命令的 MS-DOS 等效项?的主要内容,如果未能解决你的问题,请参考以下文章