ほとんどの人にとってどうでも良いネタ紹介。
  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 コメント:
コメントを投稿
不具合のある方はこちらから