about_Wildcards
Kort beskrivning
Beskriver hur du använder jokertecken i PowerShell.
Lång beskrivning
Jokertecken representerar ett eller flera tecken. Du kan använda dem för att skapa ordmönster i kommandon. Uttryck med jokertecken används med operatorn -like
eller med en parameter som accepterar jokertecken.
Om du till exempel vill matcha alla filer i C:\Techdocs
katalogen med filnamnstillägget .ppt
skriver du:
Get-ChildItem C:\Techdocs\*.ppt
I det här fallet representerar jokertecknet asterisk (*
) alla tecken som visas före filnamnstillägget .ppt
.
Uttryck med jokertecken är enklare än reguljära uttryck. Mer information finns i about_Regular_Expressions.
PowerShell stöder följande jokertecken:
Jokertecken | Beskrivning | Exempel | Matchning | Ingen matchning |
---|---|---|---|---|
* |
Matcha noll eller flera tecken | a* |
aA, ag, Apple | Banan |
? |
Matcha ett tecken i den positionen | ?n |
an, in, on | Sprang |
[ ] |
Matcha ett intervall med tecken | [a-l\]ook |
bok, kock, titta | Tog |
[ ] |
Matcha specifika tecken | [bc]ook |
bok, kock | Krok |
`* |
Matcha ett tecken som en literal (inte ett jokertecken) | 12`*4 |
12*4 | 1234 |
Du kan inkludera flera jokertecken i samma ordmönster. Om du till exempel vill hitta textfiler med namn som börjar med bokstäverna a till och med l skriver du:
Get-ChildItem C:\Techdocs\[a-l]*.txt
Det kan finnas fall där du vill matcha literaltecknet i stället för att behandla det som ett jokertecken. I dessa fall kan du använda backtick-tecknet (`
) för att undanta jokertecknet så att det jämförs med literalteckenvärdet. Matchar till exempel '*hello`?*'
strängar som innehåller "hello?".
Många cmdletar accepterar jokertecken i parametervärden. I hjälpavsnittet för varje cmdlet beskrivs vilka parametrar som accepterar jokertecken. För parametrar som accepterar jokertecken är deras användning skiftlägeskänslig.
Du kan använda jokertecken i kommandon och skriptblock, till exempel för att skapa ett ordmönster som representerar egenskapsvärden. Följande kommando hämtar till exempel tjänster där egenskapsvärdet ServiceType innehåller Interactive.
Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}
I följande exempel innehåller -instruktionen If
ett villkor som använder jokertecken för att hitta egenskapsvärden. Om återställningspunktens Beskrivning innehåller PowerShell lägger kommandot till värdet för återställningspunktens CreationTime-egenskap i en loggfil.
$p = Get-ComputerRestorePoint
foreach ($point in $p) {
if ($point.description -like "*PowerShell*") {
Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
}
}