このページの本文へ

前へ 1 2 次へ

Windows Info 第350回

WindowsのPowerShellコマンドラインで複雑な条件でファイルを検索する

2022年10月23日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

エクスプローラーでも条件による検索は可能だが、検索オプションメニューは、1回検索状態に入らないと表示されない。この検索条件は「AQS」(Advanced Query Syntax)と呼ばれていて、筆者の記憶ではWindows NT 4.0の頃に開発されたIndex serverに起源を持つ

 Windowsを使っていて、ときどき複雑な条件でファイルを検索したくなることがある。たとえば、「昨日作成したテキストファイル」だとか「10KB以上で読み出し専用のファイル」などである。

 エクスプローラーの検索欄で複雑な条件を指定する機能は、Windows 11でも残ってはいるのだが、条件指定方法を覚えている人は多くないだろう。Microsoftのサイトに古いドキュメントは残っているようだが、どこまで使えるのかはやってみないとわからない。

●Advanced Query Syntax
 https://learn.microsoft.com/en-us/windows/win32/lwef/-search-2x-wds-aqsreference

 というわけで、今回は仕様がはっきりしているPowerShellコマンドラインからの複雑なファイル検索をする方法を解説する。

基本となるGet-ChildItemコマンド

 cmd.exeの時代は、dirコマンドでファイルのリストを表示させたが、PowerShellではGet-ChildItemコマンドを使う。ただし、このコマンドには、「dir」「ls」「gci」というエイリアスが定義されているので、長々とコマンド名を入力する必要はない。もちろん、タブキーによる補完も可能だ。

 Get-ChildItemの使い方は、cmd.exeのdirコマンドに準ずる。ただし、オプションはすべてハイフンから始まるオプション名を用いる。ちなみにPowerShellでは、すべてのコマンド名とオプションはタブ補完ができる。

 現在のディレクトリで「*.txt」というファイルパターンでファイル一覧を表示させたいなら、「dir *.txt」と入力すればよい。さらにCドライブ全体からサブフォルダをすべてたどって、このパターンのファイルを探したければ、

dir C:\ -Recurse -Filter '*.txt'

とする。Aで始まりZで終わるファイル名ならば、'A*Z'などとすればよい。「-Recurse」はサブフォルダーをすべてたどることを指示するオプションで、cmd.exeのdirの「/S」とほぼ同じ意味である。

 「-Filter」は、検索するファイル名のパターンを指定するもの。ワイルドカード文字「*」(任意の文字)、「?」(任意の1文字)を使ってファイル名を指定できる。たとえば、「U*N*X」(Uで始まり、途中にNがあって最後がX)などのように複数指定することもできる。

 出力がわずらわしいなら

dir C:\ -Recurse -Filter '*.txt' -Name

とすれば名前だけになる。あるいは、“Select-Object”(selectで可)で特定のプロパティのみを表示させるというPowerShellらしい方法もある(方法は後述)。

dir C:\ -Recurse -Filter '*.txt' | select Mode,FullName

 この場合も「sel」「M」「F」の位置でタブキーを使って自動補完ができるのでキー入力数はそれほど多くない。コマンドラインの場合、タブキーなどによる補完を使うことで、かなり打鍵数を減らせる。

 テレビや映画で“ハッカー”が懸命にキーを叩いているシーンを見かけることがあるが、実際には手慣れたユーザーほど打鍵数は少ないので打鍵はリズミカルになる。

検索する対象を限定する

 Get-ChildItemコマンドでは、コマンドオプションの指定で対象を限定できる。これを使えば、少し複雑な条件も指定可能だ。ただし、コマンドオプションの指定は、AND条件になることだけは理解しておいてほしい。Get-ChildItemコマンドの正式なドキュメントは、以下にある。

●Get-ChildItem(Windows PowerShell)
 https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/get-childitem?view=powershell-5.1

 上記のURLは、Windows 10/11に同梱のWindows PowerShell Ver.5.1のものだが、PowerShell Ver.7.2に関しては、ページ左側のドロップダウンリストで切り替え可能。もっとも、ファイルの一覧出力に関しては、ほとんど同じなので違いはあまり気にしなくてもいい。

 以下の表は、対象を限定するためのGet-ChildItemコマンドの一覧である。

 表中の「コマンドラインオプション」は、「dir -Directory」のように直接コマンドラインで指定できる。「-Attributes指定」の場合には、「dir -Attributes Directory」のように指定する。ただし、「-Attributes」の場合、「,」(OR条件)、「+」(AND条件)、「!」(否定)の文字を使って複数の条件を指定できる。

 たとえば、隠しファイル属性が指定されていないディレクトリなら「dir -Attributes !Hidden+Directory」とする。いくつかの属性指定は、1文字のみの省略形がある。基本的なファイルに関しては、ファイル名パターンなどと組み合わせれば検索が可能になる。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,390
2
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥660
3
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥980
4
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥5,280
5
CIO フラットスパイラルケーブル CtoC 1m (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps (ライトブラック, 1m)
CIO フラットスパイラルケーブル CtoC 1m (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps (ライトブラック, 1m)
¥1,780
6
Amazon Kindle Paperwhite (16GB) 7インチディスプレイ、色調調節ライト、12週間持続バッテリー、広告なし、ブラック
Amazon Kindle Paperwhite (16GB) 7インチディスプレイ、色調調節ライト、12週間持続バッテリー、広告なし、ブラック
¥18,980
7
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
8
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,590
9
Amazon Kindle - 目に優しい、かさばらない、大きな画面で読みやすい、6週間持続バッテリー、6インチディスプレイ電子書籍リーダー、ブラック、16GB、広告なし
Amazon Kindle - 目に優しい、かさばらない、大きな画面で読みやすい、6週間持続バッテリー、6インチディスプレイ電子書籍リーダー、ブラック、16GB、広告なし
¥13,980
10
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
¥5,645

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン