Windows command > forコマンドによるループ処理
更新日
2012-11-17
広告
forを使うと、文字列を分割し、分割後の各文字に対して、同じ処理を実行できます。
デフォルトでは、区切り文字は「スペース」です。
以下の構文になります。
for %i in (文字列) do %iを使ったコマンドバッチファイルで書く場合は '%i' の部分を、'%%i' としてください。以下は、各文字に対してechoコマンドを実行する例です。
for %i in (aaa bbb ccc) do echo %i分割後に、特定の文字だけを選択することも可能です。以下は、1つ目の文字('aaa')のみを選択して、echoします。分割対象の文字列をダブルクォーテーションで囲んでください。
for /f "tokens=1" %i in ("aaa bbb ccc") do echo %i括弧の中に、シングルクォーテーションで囲まれたコマンドを指定すると、そのコマンドの実行結果を分割対象の文字列とできます。
for /f "tokens=1" %i in ('jps.exe -lm ^| findstr SampleProgram') do taskkill /pid %i上記の例は、以下の処理を行っています。
- jps.exeコマンドで実行中のJavaプログラムを一覧表示
- jps.exeの結果に対して、findstrコマンドを実行し、 SampleProgram という文字列が含まれる行を検索
- "tokens=1" で、SampleProgramのプロセスIDを取得
- taskkill にプロセスIDを渡し、SampleProgramのプロセスを停止
広告
お問い合わせは sweng.tips@gmail.com まで。