1. ホーム
  2. ウィンドウズ

[解決済み】バッチスクリプトのループ

2022-03-28 03:06:29

質問

あるコマンドを100~200回実行する必要があるのですが、これまでの調査では、このコマンドのコピーを100回コピー&ペーストするか、あるいは、このコマンドを実行するために for のループがありますが for そのため、200個のファイル、または200個のアイテムのリストが必要です。

私はむしろ、Cプログラムを書いて、テスト目的で私のプログラムを実行するために、なぜ別のプログラムを書かなければならないかを長々と文書化する必要はないと思っています。私のプログラムそのものを修正することも、選択肢にはない。

そこで、あるコマンドが与えられた。 a どのように実行するのですか? N バッチスクリプトで何回も?

注意:無限ループは避けたい

例えば、Javascriptで書くとこんな感じです。

var i;
for (i = 0; i < 100; i++) {
  console.log( i );
} 

Windows上で動作するバッチスクリプトでは、どのように表示されるのでしょうか?

どのように解決するのですか?

for /l はあなたの味方です。

for /l %x in (1, 1, 100) do echo %x

1から始まり、1ずつ進み、100で終了します。

警告 使用方法 %% の代わりに % のように、バッチファイル内であれば。

for /l %%x in (1, 1, 100) do echo %%x

(これは私がウィンドウズ・スクリプトについて本当に本当に嫌いなことの一つです)。

ループの各反復に複数のコマンドがある場合は、こうしてください。

for /l %x in (1, 1, 100) do (
   echo %x
   copy %x.txt z:\whatever\etc
)

またはバッチファイル

for /l %%x in (1, 1, 100) do (
   echo %%x
   copy %%x.txt z:\whatever\etc
)

キーです。

/l を表します。 for コマンドは、一連のファイルに対して操作するのではなく、数値的な方法で操作します。

%x はループ変数

(開始値, 値の増加, 終了条件[含む])