今回はWindowsでのファイル検索です(ここでの説明と実行環境はWindows10ですが、Windows 7以降であれば同じように使えると思います)。ここで説明するのはPowerShellではなくてコマンドプロンプトから実行するものです。
Windowsにはファイル検索ができるコマンドはいくつかあります。MS-DOS時代からのコマンドも使えますが、Windowsではより便利なコマンドが用意されています。MS-DOSという用語が死語になってる気もしますので、以下にWikiの解説リンクを載せておきます。CP/Mも死語みたいな気もしますが、興味ある方は検索してみてください。
・MS-DOS
https://ja.wikipedia.org/wiki/MS-DOS
WindowsにもUNIXと同じfindコマンドがあります。が、これはUNIXでのコマンドとは機能が異なります。Windowsのfindコマンドはファイルの検索ではなくて、ファイル内容の検索を行います。UNIXで言うところのgrepに近いコマンドです。今回はファイル内容の検索はしないのでfindコマンドは扱いません。UNIXでのfindコマンドに近いような機能のコマンドとしてforfilesがありますが、これについては次回説明します。
今回もサンプルファイルはデスクトップのsampleディレクトリに入れておきます。また、カレントディレクトリはsampleディレクトリとします。コマンドならcd ¥Users¥ユーザー名¥Desktop¥sampleです。ユーザー名部分は使用しているユーザー名を指定してください。すでにコマンドプロンプト起動時に自分のホームフォルダにいる場合はcd Desktop¥sampleと入力しても構いません。
ディレクトリ内容を表示する
最初にWindowsで使えるコマンドについて把握しておきましょう。Windowsで使えるコマンドについては以下のマイクロソフト社のページに一覧が掲載されています。コマンド名をクリックするとリファレンスが表示され、どのようなオプションが使えるか、コマンドのサンプルなどが掲載されています。
https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/windows-commands
まずは昔からあるdirコマンドを使ってみましょう。ちなみにコマンド名は大文字でも小文字でも構いません。MS-DOS時代にならうなら大文字でコマンドを示した方がいいのかもしれませんが、ここでは全部小文字としています。
コマンドで単にdirとだけ入力するとカレントディレクトリの内容が表示されます。その際、サブディレクトリの内容までは表示されません。
サブディレクトリの内容を表示するにはdirの後に半角空白で区切って表示したいサブディレクトリの名前を指定します。以下のようにするとカレントディレクトリにあるphotoディレクトリの内容が表示されます。
dir photo
ただ、この方法だと複数あるサブディレクトリをまとめて表示することができません。そのような場合はdirコマンドのオプションで/sを指定します。以下のようにするとカレントディレクトリ以下のサブディレクトリを再帰的に出力します。
dir /s
単純にdir /sとした場合、ファイルやサブディレクトリ数が多いと表示が流れてしまって把握しにくくなります。幸いdirコマンドにはページ単位で表示を止めてくれる/pオプションがあります。以下のようにするとページ単位で表示され、スペースキー等を押すと次のページが表示されるようになります。なお、オプションはdir /s/pのように半角空白なしでも問題ありません。順番もdir /p/sのように変えても問題ありません。
dir /s /p
dir /w
dir /s /w
ファイル・ディレクトリ情報で単純に名前だけが必要な場合もあります。そのような場合は/bオプションを指定します。
dir /b
サブディレクトリ内もリストアップする場合は/sオプションを付加します。この場合、出力されるファイル名はパス付き(フルパス)になります。
dir /s /b
ここで便利かもしれないclipコマンドを使ってみましょう。clipコマンドは標準入力をクリップボードにコピーしてくれます。先ほどの出力結果をクリップボードにコピーするには以下のようにパイプ記号を使って指定します。
dir /s /b | clip
クリップボードに出力結果が入っているのでメモ帳でテキストデータとして貼り付ける(ペースト)ことができます。
標準出力されるものは何でもコピーできるので便利に使いましょう。