%RANDOM%環境変数が単一の数値を与えている[重複]


0

この質問にはすでに答えがあります:

%RANDOM%次のコマンドの環境変数に問題があります。

FOR /l %%A in (0,1,30) do set /a results=1600 + %RANDOM% %% (1900 - 1600 + 1) && echo %%A--!results!

私はこの出力を期待しています:

0--1656
1--1743
2--1629
3--1887
…

しかし、私はこれを取得しています:

0--1656
1--1656
2--1656
3--1656
…

%RANDOM%変数がされてことになって乱数を返しますが、それは同じ番号を与えています。問題は何ですか?どうすれば修正できますか?


@WernerHenze、実際にはそうではありません。この質問に近いです。
Synetech

1
@Synetech OK、しかし、少なくとも私がリンクした質問の答えは、ここで質問への答えを与える:)。
ヴェルナーヘンツェ

回答:


1

RANDOM変数にも遅延展開を使用する必要があります。

FOR /l %%A in (0,1,30) do set /a results=1600 + !RANDOM! %% (1900 - 1600 + 1) && echo %%A--!results!

スクリプトから予想される結果を含むコマンドプロンプトのスクリーンショット


ありがとう...
hbelouf

あなたはすでにresults変数で遅延展開を使用していたので、random変数で使用するのを忘れました。あなたは使用する必要がある!の代わりに%のためにすべての変数forのループ。;-)
Synetech
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.