バッチファイルの数は少なければ少ないほど良いので、バッチ内で子バッチを作成して、その子バッチを実行するような手法をよく用いる。
具体的にはecho文を用いて子バッチファイルにリダイレクトする。この際、|(バーチカルバー)や<>といった大小記号は^(キャレット)を前につけることによって、echo文の中での意味をキャンセルできる。また%は%%とすることで同様にecho文の中での意味をキャンセルできる。
@echo off rem 子バッチファイル名の定義 set childbatfile=child.bat rem 子バッチファイルへの手続き書込 echo set outfile=outfile.txt > %childbatfile% echo echo destroy them all ^>^> %%outfile%% >> %childbatfile% rem 子バッチファイルの実行 %childbatfile% @echo on
上記バッチを実行すると、child.batというファイルが作成されて、実行される。中身はこんな感じ。
set outfile=outfile.txt echo destroy them all >> %outfile%
結果としてoutfile.txtが作成される。中身はこんな感じ。
destroy them all