.bat のひな形


rem バッチファイルがあるディレクトリへ移動
cd /d %~dp0

rem テキストファイルを列挙(再帰的)
for /f "delims=;" %%i in ('dir /b /s *.txt') do (
  echo %%i
)

%~dp0

%数字 は、バッチへ渡された引数が格納されている。但し、%0 はバッチのファイル名が入っている。
~dp オプションを付けることで、ドライブ名(d)とパス名(p)に変換できる。

for

FOR /F [“オプション”] %変数 IN (ファイル セット) DO コマンド
FOR /F [“オプション”] %変数 IN (‘コマンド’) DO コマンド

/F オプションは指定されたファイルの中身を一行ずつ読み込むオプションだが、コマンドを渡すことでコマンドの実行結果を1行ずつ処理できる。コマンドを渡すときは「’」で囲む。(但し、usebackq オプションを指定した場合は「`」で囲む)

オプションの delims=; は、読み込んだ行を区切るための文字で、今回は使用しないためファイル名としては通常使用しないであろう「;」を指定している。

%%i は読み込んだ行が格納される変数である。バッチの際は %% を使用するが、コマンドラインで使用する場合は % を使用する。

dir

/b オプションでファイル名(/s を付けた時はパスも)のみ表示するようにする。
/s でサブディレクトリ内も再帰的に探索する。
*.txt で探索するファイルの条件を指定できる。