ほとんどの人にとってどうでも良いネタ紹介。
Windows コマンドラインから、現ディレクトリ以下のファイルを列挙するには
標準コマンドを利用する方法で2通りあります。
1つ目は dir コマンドを利用して、linux で言う find . -name '*.java' を
再現する場合、
dir /s /b *.java |
とすることで再現ができます。
2つ目は for 構文を利用して検索が出来ます。
for /r %i in ( *.java ) do echo %i |
どちらの方法も、パイプを通して xargs などで渡すことによりファイル検索を
行うことが出来ますね。
でこの2つのコマンド どっちが高速か という紹介。
実はこのコマンド、一目の dir /s /b の方が2倍近く早いんです。
理由は for だと echo off をしない場合出力が2倍になるのもありますが、
echo off をしたとしても…
・for コマンドは変数展開を行える為、解析処理にオーバヘッドがある。
・echo コマンドを通すため、echo を呼び出すためのオーバヘッドがある。
という点もあり、大分遅くなります。
ファイルを探索するだけなら dir /s /b の方が実用的と言えるかもしれません。
0 コメント:
コメントを投稿