我花了過去3小時試圖解決這個問題,但找不到解決方案。這裏是我的批處理腳本:如何在DOS下增加變量?
if NOT Exist Counter.txt GOTO START
Type c:\counter.txt
if %COUNTER% EQU %Cycles% goto Pass
if NOT %COUNTER% EQU %Cycles% goto Cycle
:START
Set COUNTER=0
set CYCLES=250
:Cycle
set /A COUNTER=%COUNTER%+1 <----------- PROBLEM
echo Iteration %COUNTER% of %CYCLES%
echo Delay 3 seconds to reboot
choice /cy /n /t:y,3
warmboot.com
:Pass
pause
它在做什麼是它運行的文件「warmboot.com」(它重新啓動我的電腦)並運行250次。一旦循環運行了250次(即當計數器等於循環時),它就停止。
在Windows下,這可以工作。但是,這在DOS環境下不起作用。我已經嘗試過從v4到v6.22甚至v7的版本,並且它們在到達「PROBLEM」行時都會失敗。
如果我這樣做:
set /A COUNTER=%COUNTER%+1
echo %Counter%
OR這樣的:
set /A COUNTER+=1
echo %Counter%
都將返回一個空行,即它說明不了什麼作爲輸出。
如果鍵入:
set /?
話,就說明這一點:
顯示,設置或刪除cmd.exe的環境變量。
SET [可變= [字符串]]
變量指定環境變量名。
字符串指定要分配給變量的一系列字符。
但在Windows下的CMD中鍵入相同的命令顯示了更多的東西。我在考慮DOS下的SET函數不支持算術函數,但出於工作目的,我只能在DOS下運行我的腳本。
任何想法?
我很*很確定普通DOS不能這樣做。寫一個實際的程序,而不是(有很多語言可供選擇,例如[Turbo Pascal](http://edn.embarcadero.com/article/20803)或[C](http://www.delorie.com/ djgpp /),甚至可能是QBasic)。 –
@Michael Madsen,我不熟悉這些語言,對於我的工作要求,我必須在DOS中運行批處理腳本。 – shadowz1337
好的舊時代...... DOS下沒有BASIC嗎?如果我沒有記錯,它只有一個EXE,而且它很小(低於1 MB?) – Stephan