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