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 |
book, cook, look | 取った |
[ ] |
特定の文字と一致する | [bc]ook |
book, cook | フック |
`* |
任意の文字をリテラルとして一致する (ワイルドカード文字ではない) | 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)"
}
}
関連項目
フィードバック
フィードバックの送信と表示