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 |
、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 が含まれている場合、コマンドにより、復元ポイントの "バックアップ 後の時間 " プロパティの値がログファイルに追加されます。
$p = Get-ComputerRestorePoint
foreach ($point in $p) {
if ($point.description -like "*PowerShell*") {
Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
}
}
関連項目
フィードバック
フィードバックの送信と表示