WindowsOSで、dirコマンドで特定のファイル名のみを再帰的にカレントディレクトリ以下から検索表示する方法を調べたので載せておこうと思います。
(ちなみに、ちょっとしたコマンドなのですぐにわかると思ったら、windows コマンド dir find 再帰 みたいなキーワードで検索して、上位表示される検索結果にある記事の内容の通りにコマンドを打っても、うまく動作しないという現象に少し手間取ってしまいました。
結論としては、PowerShellとコマンドプロンプトで、コマンドの記述方法は似ているくせに所々違うのが原因でした。
上記のような検索キーワードだと、コマンドプロンプトでの記述方法ばかりが検索結果に表示されてしまうようでした。
Windos10の時代では、標準のコマンドソフトはPowershellなので、シェル PowerShellといったキーワードを入れずに検索しても出てくるはずだという思い込みと、書かれている記事にコマンドプロンプトでの記述なのかPowerSellの記述なのかという観点で読まなかったのがいけませんでした。今後コマンド関係を調べるときには気を付けようと思いました)
コマンドプロンプトでdirコマンドでファイル名を再帰的に検索表示する方法
コマンドプロンプトでdirコマンドを使ってファイル名を再帰的に検索する例を挙げます。
カレントディレクトリ以下からindexという名前を含んだHTMLファイルを検索しています。
- dir /s /b | findstr “.*index.*.html”
コマンドの解説です。
- dirコマンド:
ディレクトリ情報を表示するコマンド。 - /s オプション:
指定されたディレクトリ以下を再帰的に検索します。 - /b オプション:
表示される情報の内、ファイル名(パス)だけを表示するようにします。
パイプラインでfindstrに情報を受け渡します。
- findstrコマンド:
<findstr “文字列”> という記述で文字列を検索するコマンド。正規表現も使用できます。
PowerShellでdirコマンドでファイル名を再帰的に検索表示する方法
PowerSellの場合は、ファイル名を再帰的に検索しようとすると、色々な方法があるみたいですが、私は凝ったことをしたいわけでもなかったので、シンプルに下記の方法を採用しました。
こちらも、PowerSellでdirコマンドを使ってファイル名を再帰的に検索する例を挙げます。
カレントディレクトリ以下からindexという名前を含んだHTMLファイルを検索しています。
- dir -r -Filter “*index*.html” | select fullname
コマンドの解説です。
- dirコマンド:
Get-ChildItemコマンドのエイリアス。ディレクトリ情報を取得するコマンド。 - -r 再帰オプション:
再帰オプション。指定されたディレクトリの最下層までの全て対象として検索します。 - -Filter オプション:
検索結果をフィルター(条件)によって絞り込みます。ワイルドカードは使えます。 - -Nameオプション:
表示される情報の内、ファイル名のみ出力します。
パイプラインでselectに情報を受け渡します。
- selectコマンド:
Select-Objectコマンドのエイリアス。オブジェクトの持つプロパティ情報を表示するコマンド。 - fullname パラメータ:
フルファイルパスの情報を表示します。