FOR /F + DIR /B = ファイル名を順番に取り出して実行する方法 - Windowsのコマンドプロンプト(bat,cmd)
○Windows XP
ファイル名を順番に取り出して実行したい時は、FOR /F と DIR コマンドを組み合わせる方法が簡単です。次のような事が出来ます。
o ファイル名を並び替えて実行する
+ 名前順の他、更新日時順、逆順に並べる、といった事も簡単です。
o 特定の属性を持つファイルだけを取り出す
+ 隠しファイルだけを取り出す事も簡単に出来ます。
**** 使用例
o コマンドプロンプト画面で動かす時の書き方
--------
@echo off
rem ファイル名の取り出し。更新日時の古いもの順
for /f "delims=;" %i in ('dir /b /od c:\ミクさん\*.txt') do echo ファイル発見( %i )
--------
+ コマンド名やキーワードは、大文字小文字のどちらでも大丈夫です。
+ delims は区切り文字の指定です。ここでは、(空白から)セミコロンに変更しています。
+ FOR /F の詳細は「FOR /F その2 = コマンド実行結果を1行ずつ取り出して実行する」
+ DIR /B の詳細は「DIR /B。ファイル名だけの一覧を簡単に取得する方法」
o バッチファイルで動かす時の書き方
--------
for /f "delims=;" %%i in ('dir /b /od c:\ミクさん\*.txt') do echo ファイル発見( %%i )
--------
+ バッチファイルの時は、変数名の前に「%」を2つ付けます。
**** メモ
o 上記の他に、ファイル名の一覧を作って編集する方法も、便利です。
+ 一旦、ファイル名をファイルに書き出します。(例。 dir /b > tmp.txt)
+ 書き出したファイルの内容を、編集します。
+ 最後に、FOR /Fで、編集したファイルからファイル名を読み込むようにします。
**** 確認したバージョン
o Windows XP Service Pack 3
==
関連ページ:
▼FOR = 繰り返し実行する
▼Windowsコマンド。制御文と環境変数(▼ABC順)
▼コマンドプロンプト画面
▼制作メモ
> FOR /F その1 = ファイルを1行ずつ取り出して実行する
FOR /F その2 = コマンド実行結果を1行ずつ取り出して実行する
FOR /F その3 = 指定した文字列の分割結果を取り出して実行する