このページの本文へ

前へ 1 2 次へ

Windows Info 第512回

WindowsのPowerShellにおけるワイルドカード

2026年01月18日 10時00分更新

文● 塩田紳二 編集● ASCII

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

 PowerShellでは、一部コマンドの特定パラメーターに「ワイルドカード」が利用できる。今回は、PowerShell(Windows PowerShellを含む)のワイルドカードについて解説する。

そもそもワイルドカードとは?

 UNIXやMS-DOSのコマンドラインで作業した経験があれば、ワイルドカード自体の説明は不要と思われるが、最近ではコマンドラインと無縁という人も少なくない。そこで簡単にワイルドカードについて解説しておく。

 まずは、コマンドラインの要素についてだ。OSやコマンドラインプロセッサ(シェル)により、公式の表記もあるのだが、論理的な命名であるなどの理由で、異なって見える要素に同じ名称が付いているなど、初心者が混乱しやすいものが少なくない。それで、当記事では、独自にコマンドライン要素に名前をつけた。

Windows

 コマンドラインは、「コマンド」と「引数」から構成されている。場合によっては引数がなく、コマンドだけが指定されることもある。

 引数は、コマンドの動作を指定する「オプション」と「パラメーター」から構成される。PowerShellの場合、基本的には「オプション」と「パラメーター」は必ず対になっているのだが、省略可能なオプションやパラメーターがある。このあたりの関係は、コマンドのヘルプを参照するしかない。ただし、どのコマンドでも省略できるオプションは限られている。オプションのパラメーターが省略された場合には、既定値がパラメーターとして使われる。

 さて、話をワイルドカードに戻そう。ワイルドカードとは、たとえば、ファイル名の指定で、任意の文字や任意の文字列と一致する特殊な文字をいう。たとえば、test1.txt、test2.txt、test3.txt、……test10.txtと10個のファイルがあるとする。任意の1文字に一致するワイルドカード文字である「?」を使い「test?.txt」というファイル名指定は、test1.txtからtest9.txtの9個のファイルに一致する。しかし、test10.txtには一致しない。testとピリオドの間に2文字があるからだ。

 ワイルドカードを利用できるのは、コマンドやオプションのパラメーターがワイルドカードを許容(処理)可能としている場合だけだ。MS-DOSやWindows 11付属のCMD.EXEは、ファイルパスの一部としてワイルドカードを受け付けるだけだが、PowerShellの場合、「-like」演算子のパラメーターなど、ファイルパス以外の指定に対してワイルドカードが利用できる。

 コマンドやオプションがワイルドカードを受け付けるかどうかは、PowerShellコマンドのヘルプに記述がある。

Windows

Get-ChildItemの-Pathオプションは、オプションパラメーターが文字列で、ワイルドカードを受け付ける。また、オプションパラメーターの省略時には、カレントディレクトリが対象となる

PowerShellのワイルドカード

 以下の表は、PowerShellのワイルドカードとその機能を解説したものだ。ワイルドカードには、「任意の1文字に一致」「0個以上の文字に一致」「特定の文字グループ内の1文字に一致」「連続する文字範囲内の1文字に一致」の4種類がある。また、ワイルドカードで使われる特殊文字「*」「?」「[」「]」を文字として扱いたい場合には、PowerShellのエスケープ文字である逆クオートを使い、たとえば、「`*」のように指定を行う。

Windows

 「?」は、任意の1文字に一致する。これに対して「*」は、0個以上の任意の文字に一致する。さらにPowerShellのワイルドカードでは、文字範囲、文字グループの指定も可能になっている。ただし、正規表現のように否定の指定はできない。

Windows

似ている文字列と一致する「-like」演算子は、ワイルドカードと組み合わせて使う

 文字範囲の指定は、連続する文字コードの指定が可能だが、必ず先に文字コードの小さい方を「開始文字」として指定する必要がある。文字コードとしてユニコードを想定しているため、日本語などの指定も可能。

 文字グループの指定は、一致させたい文字を並べて角カッコでくくる。

 文字範囲と文字グループは混在させて指定できる。文字範囲の指定は必ず1文字なので、その前後に文字を置いても区別が可能だ。ただし、ハイフンを一致対象とさせたい場合には、PowerShellのエスケープ文字である逆クオートを前置する必要がある。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

ASCII倶楽部

注目ニュース

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

プレミアム実機レビュー

ピックアップ

デジタル用語辞典

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