どのようなテクニックもいつどこで役に立つかわからないが、特定の拡張子のファイルだけを検索するテクニックもその一つと言える。
個人的にはWindowsがthumbs.dbを勝手に生成していたり、ほかの人からもらった圧縮ファイルに紛れていたりしてそういう時に検索してその都度削除したりしている。
他にはマイドキュメント以外に保存先が複数ある場合、どこにWordファイルを保存したか等を調べたりする時にも使ったりする。
コマンドプロンプトから
Wordファイルを全て検索するには以下をコマンドプロンプトから入力
dir /s c:\*.docx c:\*.doc
もしくは
dir /s /b c:\*.docx c:\*.doc
そうすると、c:\ドライブの中から全ての.docと.docxの拡張子が付いた新旧のワードファイルを検索してくれる。
因数に /b が付くのとつかないのを上記に記しているが、表示が異なるが、試してみると「なるほど!」と納得がいく。
しかし、そのままだと本当に全てのワードファイルを検索してしまうので日付を文字列としてパイプで指定すると該当するワードファイルを探す事ができます。

こちらでは新しいワードの拡張子の文書を検索 & 日付は2019年4月7日としています。

こちらでは古いワードファイルを検索していますが、日付は1999年1月1日としています。
上記の検索の例では両方ともdir /sを使いdir/s/bでは検索していません。もし、/bを使うベアフォーマットで検索すると日付指定では引っかかりませんのであしからず。なお、ベアフォーマットとは現在いるディレクトリーで行えばファイル名だけ、現在のディレクトリーからすべてのサブディレクトリーを検索するパターンではパスを含むファイル名で表示してくれます。
PowerShellから
Wordファイルを全て検索するには以下をコマンドプロンプトから入力
Get-ChildItem -Path 'C:\' -Include @('*.docx', '*.doc') -Recurse
もしくは
Get-ChildItem c:\ -Include *.doc, *.docx -recurse
もしくは
dir c:\* -include ('*.doc', '*.docx') -recurse
()かっこはあってもなくても良いが、()がある方が明示的で良い。
もしくは
dir c:\* -include ('*.doc', '*.docx') -recurse
もしくは
Get-ChildItem c:\ -recurse | where {$_.extension -in ".doc",".docx"}
もしくは
dir c:\ -recurse | where {$_.extension -in ".doc",".docx"}
っとまぁ、色々とあります。
Everythingから
EverythingというWindows用のソフトがVoidToolsから無料であります。
一般的な用途ならば通常はこちらを利用した方がはるかに楽+簡単+効率が良い。
下記はWordファイルを新旧()問わずファイル名+拡張子を検索します。
検索バーには「.doc」とだけ記入してます。この場合、「.doc」「.docx」を含むファイル、フォルダーなど全てをシステム上及び登録しているHTTPサーバー、ETP/FTPサーバー上から探し出します。
検索結果を出力して使いたい場合はExportからテキストファイル等に出力できます。
コメント