web-dev-qa-db-ja.com

コマンドラインを介した範囲でのWindowsバッチFORループ

コマンドウィンドウから操作を複数回実行したい。常識的には、FORループでこれを処理できるはずです。案の定、myProg.exeなどを実行したい場合は、コマンドウィンドウを開いて以下を使用できます。

C:\> FOR %i in (1 2 3) DO myProg.exe

簡単です。

しかし、myProg.exeを1000回実行する場合はどうなりますか? FORループで範囲を指定したいのですが、これを行う方法がわかりません。

直観的には、次のいずれかのようなことができるはずです。

C:\> FOR %i in (1 to 1000) DO myProg.exe
C:\> FOR %i in (1-1000) DO myProg.exe

しかし、もちろん、これは機能しません。 FORループはリストをそれぞれ3トークンと1トークンとして解釈するため、myProg.exeはそれぞれ3回と1回だけ実行されます。


バッチファイルソリューション

おそらく、ある種のバッチ(.bat)ファイルを書くのは簡単でしょう。

SET COUNT=0
:MyLoop
    IF "%COUNT%" == "1000" GOTO EndLoop
    myProg.exe
    SET /A COUNT+=1
    GOTO MyLoop
:EndLoop

しかし、コマンドラインからこれを行う簡単な方法はありませんか?

22
Kirby

ステートメントで/ lタグを使用して、一連の数値をループ処理できます。

例えば。

C:\> FOR/l%i in(1,1,1000)DO myProg.exe

これは、1から始まり、1000になるまで1つずつステップ実行する範囲をループすることを意味します。

http://ss64.com/nt/for_l.html

39
Jeremy

/ l %% i in(1,1,100)do echo %% i

作業する前に別の%記号を追加します

6
user2106965