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.exems-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 等效项?的主要内容,如果未能解决你的问题,请参考以下文章

如何修改cmd的默认路径

命令提示符和DOS和CMD有啥区别?

ms-dos下怎么同时用两条命令?

cmd

Linux mmove 命令

Linux命令-文本编辑