about_Wildcards

簡単な説明

PowerShell でワイルドカード文字を使用する方法について説明します。

長い説明

ワイルドカード文字は、1 つまたは複数の文字を表します。 これらを使用して、コマンドで単語パターンを作成できます。 ワイルドカード式は、演算子またはワイルドカードを -like 受け入れる任意のパラメーターで使用されます。

たとえば、ディレクトリ内 C:\Techdocs のすべてのファイルをファイル名拡張子と .ppt 照合するには、次のように入力します。

Get-ChildItem C:\Techdocs\*.ppt

この場合、アスタリスク (*) ワイルドカード文字は、ファイル名拡張子の前に出現するすべての文字を .ppt 表します。

ワイルドカード式は正規表現よりも単純です。 詳細については、 about_Regular_Expressionsを参照してください。

PowerShell では、次のワイルドカード文字がサポートされています。

ワイルドカード 説明 一致したもの 一致なし
* 0 個以上の文字と一致する a* aA、ag、Apple バナナ
? その位置の 1 文字に一致する ?n an、in、on 走った
[ ] 文字の範囲に一致する [a-l\]ook 本、料理、見る 取った
[ ] 特定の文字と一致する [bc]ook 本、料理 フック
`* 任意の文字をリテラルとして一致させる (ワイルドカード文字ではない) 12`*4 12*4 1234

同じ単語パターンに複数のワイルドカード文字を含めることができます。 たとえば、 a ~l の文字で始まる名前のテキスト ファイルを検索するには、次のように入力します。

Get-ChildItem C:\Techdocs\[a-l]*.txt

ワイルドカード文字として扱うのではなく、リテラル文字と一致させる場合があります。 このような場合は、バックティック (`) 文字を使用してワイルドカード文字をエスケープし、リテラル文字値を使用して比較することができます。 たとえば、 '*hello`?*' "hello?" を含む文字列と一致します。

多くのコマンドレットでは、パラメーター値にワイルドカード文字を使用できます。 各コマンドレットのヘルプ トピックでは、ワイルドカード文字を受け取るパラメーターについて説明します。 ワイルドカード文字を受け取るパラメーターでは、大文字と小文字が区別されません。

コマンドおよびスクリプト ブロックでワイルドカード文字を使用して、プロパティ値を表す単語パターンを作成できます。 たとえば、次のコマンドは、 ServiceType プロパティ値に Interactive が含まれるサービスを取得します。

Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}

次の例では、ワイルドカード文字を If 使用してプロパティ値を検索する条件がステートメントに含まれています。 復元ポイントの 説明PowerShell が含まれている場合、コマンドは復元ポイントの CreationTime プロパティの値をログ ファイルに追加します。

$p = Get-ComputerRestorePoint
foreach ($point in $p) {
  if ($point.description -like "*PowerShell*") {
    Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
  }
}

こちらもご覧ください