web-dev-qa-db-ja.com

Windows batスクリプトでループを1からnまで数える

Batスクリプトファイル内でWindowsコマンドをn回実行する必要があります。私はさまざまなプログラミング言語でこれを行う方法を知っていますが、Windowsコマンドラインで正しく実行することができません:

私はどちらかのようなものを期待します

for(int i = 0; i < 100; i++) {
   // do something
}

またはこれさえ(完全に真剣ではありませんが)

1.upto(100, {
   // do something
}) 

ありがとう!

---([〜#〜]編集[〜#〜]

私は、Java、Perl、c、またはこのようなバットスクリプトを生成するものでプログラムを書くことができます

for %%N in (1 2 3 4 5 6 7 8 9 10 11 12) do echo %%N

等々。または「より良い」:

echo 1
echo 2
echo 3
echo 4
echo 5
echo 6
echo 7
echo 8
echo 9
echo 10
echo 11
echo 12

そして、それを実行します...しかし、問題はwithinスクリプトを反復するために数値の範囲を指定する簡潔な方法が必要なことです。

ありがとう!

25
raoulsson

次のように同様に実行できます。

ECHO Start of Loop

FOR /L %i IN (1,1,5) DO (
  ECHO %i
)

1,1,5は次のようにデコードされます。

(start,step,end)

また、これをバッチファイルに埋め込む場合は、二重パーセント記号(%%)を使用して変数にプレフィックスを付ける必要があります。そうしないと、ループを実行する前にコマンドインタープリターが変数%iを評価しようとします。

46
Goyuix

構文は

FOR %%A IN (1 2 3) DO ECHO %%A

良い記事 ここ とXP詳細 ここ

9
Andy

コマンドラインから直接:

for /L %n in (1,1,100) do @echo %n

バッチファイルの使用:

@echo off
for /L %%n in (1,1,100) do echo %%n

ディスプレイ:

1
2
3
...
100
7
fmoraesjr