ワイルドカードについて
概要
PowerShell でワイルドカード文字を使用する方法について説明します。
詳細説明
ワイルドカード文字は、1 つまたは複数の文字を表します。 これらを使用して、コマンドで単語パターンを作成できます。 たとえば、ファイル名拡張子を持つディレクトリ内のすべてのファイルをC:\Techdocs
.ppt
取得するには、次のように入力します。
Get-ChildItem C:\Techdocs\*.ppt
この場合、アスタリスク (*
) ワイルドカード文字は、ファイル名拡張子の前に表示される任意の文字を .ppt
表します。
PowerShell では、次のワイルドカード文字がサポートされています。
ワイルドカード | 説明 | 例 | 一致する | 一致なし |
---|---|---|---|---|
* | 0 個以上の文字と一致する | a* | aA、ag、Apple | バナナ |
? | その位置の 1 文字に一致する | 。N | an、in、on | 走った |
[ ] | 文字の範囲を一致させる | [a-l]ook | 本、料理、見る | 取った |
[ ] | 特定の文字と一致する | [bc]ook | 本、料理 | フック |
同じ単語パターンに複数のワイルドカード文字を含めることができます。 たとえば、文字 a から l で始まる名前のテキスト ファイルを検索するには、次のように入力します。
Get-ChildItem C:\Techdocs\[a-l]*.txt
多くのコマンドレットでは、パラメーター値にワイルドカード文字を使用できます。 各コマンドレットのヘルプ トピックでは、ワイルドカード文字を受け入れるパラメーターについて説明します。 ワイルドカード文字を受け入れるパラメーターの場合、その使用では大文字と小文字が区別されません。
などのコマンドおよびスクリプト ブロックでワイルドカード文字を使用して、プロパティ値を表す単語パターンを作成できます。 たとえば、次のコマンドは、 ServiceType プロパティ値に Interactive が含まれるサービスを取得します。
Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}
次の例では、 ステートメントに If
ワイルドカード文字を使用してプロパティ値を検索する条件が含まれています。 復元ポイントの Description に PowerShell が含まれている場合、コマンドは復元ポイントの CreationTime プロパティの値をログ ファイルに追加します。
$p = Get-ComputerRestorePoint
foreach ($point in $p) {
if ($point.description -like "*PowerShell*") {
Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
}
}