compare.txt:批處理文件
a_max<=a_min
這裏是我的批處理文件:
@echo off
for %%n in (1 1 9) do
set \a "is_p=%random%"
set \a "n=%random%"
set \a "a_max=%random%"
set \a "a_min=%random%"
set \a "a_min=%random%"
if "is_p%2"=="1" (%is_p%=1)
if "is_p%2"=="0" (%is_p%=0)
for %%n in (compare.txt) do (
%a_min%=%random%
)
echo %is_p% %n% %a_max% %a_min% >> input.txt
allsort <input.txt> results.txt
)
在input.txt的結果是:
12405 220 26501 3870
12405 220 26501 3870
12405 220 26501 3870
我的問題是:
- 我希望運行在循環9次,但實際上它跑了3次。
- 我使用%random%,以及爲什麼結果每次都是一樣的?
- 我也希望if語句後is_p是1或0,但爲什麼它實際上是一個隨機數?
P.S
- 我學習如何編寫批處理文件的初學者,所以可能有很多錯誤。
英語不是我的母語,所以請容忍我可憐的英語,謝謝。 :)
To @ Stephan,%is_p%=%random%表示我想爲變量is_p指定一個隨機數。
另外,如果語句表示如果is_p%2 = 1,則設置is_p = 1。並且如果is_p%2 = 0,則設置is_p = 0。
正確的代碼後,它可以運行9倍,但結果每次都還是一樣。
設置一個變量,你必須使用'set'command。要獲取變量的內容,請使用'%variable%'。而不是檢查'var%2'是0還是1,並將var設置爲0或1,只需將該變量設置爲'var%2'(使用%%而不是%,因爲您處於批處理文件中) – Stephan
編輯您的問題以反映新的(更正的)代碼? – Stephan