2015-11-03 73 views
1

最近我創建了一個小型BATCH遊戲。CMD命令的MS-DOS等價物?

事情是,因爲我使用Windows的CMD BATCH語言,遊戲將無法在DOS或DOSbox中正常運行。

開場很好,但是一旦我到達第一個玩家輸入部分,我會得到一個「錯誤的語法」錯誤。

有誰知道Windows CMD命令的MS-DOS等價物?

例如,在基於CMD的BATCH文件中,我將使用「set ...」來設置輸入。 DOS版本的「set ...」是什麼?

: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等效?

+2

你應該放一些代碼示例 –

+1

[dosbox](http://www.dosbox.com/wiki/Commands)的命令與MS-DOS相比是非常有限的,所以你可能需要cal cmd無論如何.exe。 – npocmaka

+1

和'cmd.exe'是'ms-dos'的超集[ – npocmaka

回答

0

我建議使用virtualbox與MSDOS 7.1而不是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聲明是我找到的。

+0

感謝您的信息。我會看看QBASIC和VirtualBox。我只是有一個問題:所以爲了使DOS兼容的BATCH文件,我不應該使用任何正常的批處理腳本,而是寫一切基於QBASIC的呢?或者我應該做一個兩者的混合體(玩家輸入在QBASIC中完成,但其他一切都在正常的BATCH中)? – JasonWanderer

+0

我會做一個混合體,因爲轉換會容易得多,但是如果命令不起作用,那麼我會在QBASIC中做它,因爲它有一個很大的命令庫可能滿足需要。 – RookieTEC9

+0

據我所知,QBASIC不能在64位Windows上運行。爲了與DOS和Windows兼容,你只能使用DOS命令(儘管我不太確定,如果它們都能在Windows中工作的話)。如果你只想爲DOS編寫遊戲,我會去QBASIC並忘記批處理。 – Stephan