Batch file 有关语法和结果的批处理文件

Batch file 有关语法和结果的批处理文件,batch-file,random,Batch File,Random,compare.txt: 我的问题是: 我希望在for循环中运行9次,但实际上它确实运行了3次。 我使用%random%,为什么每次的结果都是一样的? 我还希望if语句后面的is_p是1或0,但为什么它实际上是一个随机数呢? 附言 我是学习如何编写批处理文件的初学者,所以可能有很多错误 英语不是我的母语,所以请容忍我的英语不好,谢谢 对于@Stephan,%is_p%=%random%意味着我想给变量is_p分配一个随机数。 另外,if语句表示if is_p%2=1,set is_p=1。如果i

compare.txt:

我的问题是:

我希望在for循环中运行9次,但实际上它确实运行了3次。 我使用%random%,为什么每次的结果都是一样的? 我还希望if语句后面的is_p是1或0,但为什么它实际上是一个随机数呢? 附言

我是学习如何编写批处理文件的初学者,所以可能有很多错误

英语不是我的母语,所以请容忍我的英语不好,谢谢

对于@Stephan,%is_p%=%random%意味着我想给变量is_p分配一个随机数。 另外,if语句表示if is_p%2=1,set is_p=1。如果is_p%2=0,set is_p=0

更正代码后,它可以运行9次,但每次的结果仍然相同

1对于第一个for循环,请使用以下语法:

for /L %%n in (1 1 9) do (
丢失的可能是打字错误

2您的主要问题是:在一个代码块中,所有介于和之间的变量都会立即求值-因此所有的%random%都是相同的。 您必须设置本地ENABLEDELAYEDEXPANSION并使用!随机的而不是%random%

-%a_min%=%random%-这不是有效的语法-你想怎么做

3如果is_p%2==1%is_p%=1-这不是,你认为它是什么。我想你的意思是这样的:

set /a is_p=!is_p! %%2

必须将批处理中的百分比符号加倍

要设置变量,必须使用set命令。要获取变量的内容,请使用%variable%。不要检查变量%2是0还是1,而是将变量设置为0或1。只需将变量设置为变量%2,使用%%而不是%即可,因为您在批处理文件中。是否可以编辑您的问题以反映新更正的代码?
12405 220 26501 3870  
12405 220 26501 3870  
12405 220 26501 3870  
for /L %%n in (1 1 9) do (
set /a is_p=!is_p! %%2