Windowsのエクスプローラーでのファイル検索が遅かったので、他に方法はないか調べたところ、
PowerShellでもできるということが分かりました。
PowerShellはWindows10に標準で入っているのですぐに試せます。
PowerShellの利点
- エクスプローラーよりも検索が早い(ときもある)
- ワイルドカード以外にも様々な検索条件が設定できる
- オプションで検索結果の表示を変更できる
PowerShellを起動する
Windowsの検索バーで「PowerShell」と打ちましょう。
「ISE」が付いているものと付いていないものがあります。
どちらでもOK。
ISE付きはデバッグができるので、長いコードを書くときは便利です。
PowerShellでファイル検索
基本の書き方
Get-ChildItem “検索したいファイル名”
Mドライブにあるテキストファイルをすべて検索する場合
Get-ChildItem M:*.txt
上記のように書くと、テキストファイルが表示されます。
カレントディレクトリがCドライブなので、コマンドではM:\
を入れてます。
検索する前に、cd M:
でカレントディレクトリをMドライブにすればM:\
は要りません。
サブディレクトリ配下も検索する場合は「-Recurse」オプション
Get-ChildItem M:*.txt -Recurse
Mドライブにフォルダがあるとき、そのフォルダの中身まで検索してくれます。
指定した拡張子で絞り込む「-Include」オプション、結果に含ませないときは「-Exclude」
Get-ChildItem M:\ -Include *.pdf, *.txt -Exclude s* -Recurse
Mドライブ以下にある、拡張子が「.pdf」、「.txt」のファイルを表示します。
このとき、ファイル名がsから始まるファイルは表示しません(-Exclude s*)。
ファイル名だけを表示する「Name」
Get-ChildItem M:\ -Include *.pdf, *.txt -Exclude s* -Recurse | Select-Object -property Name
上の画像のように、LastWriteTimeやLengthを表示しません。
ファイル名だけを表示してくれます。
プロパティも表示したくない場合は
-property
を-ExpandProperty
にします。
ファイル名をフルパスで表示する「fullname」
Get-ChildItem M:\ -Include *.pdf, *.txt -Exclude s* -Recurse | Select-Object fullname
他にもいろいろオプションあります。
ファイル検索なら、とりあえずこれだけ覚えておけばいいんじゃないかと。