0
在我的批處理程序,我在它的中間這條線:批次隨機函數給出相同的第一輸出
set /a scramble=%random%
這裏的問題是,每次我打開批處理文件,它給了我同樣的輸出,例如我打開它,它將%scramble%設置爲17534,下次打開它時,它非常相似,例如17546,增加了一小部分。如果我循環它,那麼只有第一個隨機數是相似的,其餘的都是隨機的。
例如我第一次運行它,它給我的數字這個名單:
23486,32645,4854
第二次它給
23498 ,26374,17322
所以只有第一個是simi LAR。
一個簡單的解決方法是將echo %random%
,然後cls
在批處理的開始,所以這對我來說不是問題,但我只是想知道爲什麼這是?
*「但是,如果你開始你的批處理文件相同的CMD實例內幾次,序列不會那麼類似初始化完成一次。」 * - 這不是我不瞭解你的觀點,特別是因爲你知道如果幾個批處理過程在同一秒內開始,它們每個都會得到相同的「隨機」序列。我認爲你的句子意思相反。 – dbenham
@dbenham,取這個'x.cmd'批處理文件'@echo%random%'。現在,從命令行執行(1 1 10)中的'for/l%a'執行@start/b cmd/c x.cmd',然後在(1 1 10)do @call x中執行'for/l%a。 cmd'。 PRNG每** ** cmd進程**初始化一次,而不是每批文件執行。 *在相同的cmd實例*中產生差異 –
當然 - 我有一個短暫的大腦放屁。謝謝。 – dbenham