ot2sy39's note

twitter 140文字じゃ書けないときの外部エントリみたいな

forfiles.exe についてのメモ

条件に合致する多数のファイルに対して一括処理を施したいケースは多い。 Windowsでこれを実現してくれるのが、forfiles.exeというコマンド。

www.atmarkit.co.jp

上の記事でも触れられているが、forfiles.exe の /C オプションの中では、 0x00の形式で特殊文字を使用できる。 記事中では0x09でタブですよと例示されているが、真に必要なのはダブルクォート。

/C オプションの引数はダブルクォートで実行コマンドを記述するのだが、 awksedワンライナーを書こうとするとどうしても入れ子でダブルクォートをする必要がでてくるので、 0x22でくくってやるわけだ。

> forfiles.exe /S /D -2017/12/31 /M *.log /C "cmd /c gawk 0x22{print $0}0x22 @path"

このコマンドは、カレントディレクトリ以下にある2017/12/31以前の*.logファイルを{print $0}する。