Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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. Jokerteckenuttryck används med operatorn -like
eller med någon parameter som accepterar jokertecken.
Om du till exempel vill matcha alla filer i C:\Techdocs
katalogen med ett .ppt
filnamnstillägg skriver du:
Get-ChildItem C:\Techdocs\*.ppt
I det här fallet representerar jokertecknet asterisk (*
) alla tecken som visas före filnamnstillägget .ppt
.
Jokerteckenuttryck är enklare än reguljära uttryck. Mer information finns i about_Regular_Expressions.
PowerShell stöder följande jokertecken:
-
*
– Matcha noll eller fler tecken-
a*
matcharaA
,ag
ochApple
-
a*
matchar intebanana
-
-
?
– För strängar matchar du ett tecken i den positionen-
?n
matcharan
,in
ochon
-
?n
matchar interan
-
-
?
– För filer och kataloger matchar du noll eller ett tecken i den positionen-
?.txt
matchningara.txt
ochb.txt
-
?.txt
matchar inteab.txt
-
-
[ ]
– Matcha ett intervall med tecken-
[a-l]ook
matcharbook
,cook
ochlook
-
[a-l]ook
matchar intetook
-
-
[ ]
– Matcha specifika tecken-
[bc]ook
matchningarbook
ochcook
-
[bc]ook
matchar intehook
-
-
`*
- Matcha ett tecken som en literal (inte ett jokertecken)-
12`*4
tändstickor12*4
-
12`*4
matchar inte1234
-
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
Kommentar
Jokerteckenmatchning för filsystemobjekt fungerar annorlunda än för strängar. Mer information finns i avsnittet Anmärkningar i metoden DirectoryInfo.GetFiles(String, EnumerationOptions).
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 undvika 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 Interaktiv.
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)"
}
}