about_Wildcards
Rövid leírás
Bemutatja, hogyan használhat helyettesítő karaktereket a PowerShellben.
Hosszú leírás
A helyettesítő karakterek egy vagy több karaktert jelölnek. Ezekkel szómintákat hozhat létre a parancsokban. A helyettesítő karaktereket az -like
operátorral vagy a helyettesítő karaktereket elfogadó paraméterekkel használja a rendszer.
Ha például a könyvtárban lévő C:\Techdocs
összes fájlt egy .ppt
fájlnévkiterjesztéssel szeretné egyezni, írja be a következőt:
Get-ChildItem C:\Techdocs\*.ppt
Ebben az esetben a csillag (*
) helyettesítő karakter a fájlnévkiterjesztés előtt .ppt
megjelenő karaktereket jelöli.
A helyettesítő kifejezések egyszerűbbek, mint a normál kifejezések. További információ: about_Regular_Expressions.
A PowerShell a következő helyettesítő karaktereket támogatja:
*
- Nulla vagy több karakter egyezésea*
egyezésekaA
,ag
ésApple
a*
nem egyezikbanana
?
- Sztringek esetén egyeznie kell egy karakterrel ebben a pozícióban?n
egyezésekan
,in
éson
?n
nem egyezikran
?
- Fájlok és könyvtárak esetében egyezzen nulla vagy egy karakter az adott pozícióban?.txt
egyezéseka.txt
ésb.txt
?.txt
nem egyezikab.txt
[ ]
- Egy karaktertartomány egyeztetése[a-l]ook
egyezésekbook
,cook
éslook
[a-l]ook
nem egyeziktook
[ ]
- Adott karakterek egyeztetése[bc]ook
egyezésekbook
éscook
[bc]ook
nem egyezikhook
`*
- Bármely karakter egyeztetése konstansként (nem helyettesítő karakterként)12`*4
Mérkőzések12*4
12`*4
nem egyezik1234
Ugyanabban a szómintában több helyettesítő karakter is szerepelhet. Ha például az a–l betűvel kezdődő neveket tartalmazó szövegfájlokat szeretné megkeresni, írja be a következőt:
Get-ChildItem C:\Techdocs\[a-l]*.txt
Feljegyzés
A fájlrendszerelemek helyettesítő karaktereinek egyeztetése másként működik, mint a sztringek esetében. További információt a DirectoryInfo.GetFiles(String, EnumerationOptions) metódus Megjegyzések szakaszában talál.
Előfordulhat, hogy a literális karaktert nem helyettesítő karakterként szeretné kezelni. Ezekben az esetekben a backtick (`
) karakterrel elkerülheti a helyettesítő karaktert, hogy a literális karakterértékkel hasonlítsa össze. Például egyezik a '*hello`?*'
"hello?"-t tartalmazó sztringekkel.
Számos parancsmag helyettesítő karaktereket fogad el a paraméterértékekben. Az egyes parancsmagok súgótémaköre leírja, hogy mely paraméterek fogadnak el helyettesítő karaktereket. A helyettesítő karaktereket elfogadó paraméterek használata kis- és nagybetűket nem érzékelyítő.
A parancsokban és szkriptblokkokban helyettesítő karaktereket is használhat, például létrehozhat egy tulajdonságértékeket képviselő szómintát. Az alábbi parancs például lekéri azokat a szolgáltatásokat, amelyekben a ServiceType tulajdonság értéke az Interaktív értéket tartalmazza.
Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}
Az alábbi példában az If
utasítás tartalmaz egy feltételt, amely helyettesítő karaktereket használ a tulajdonságértékek kereséséhez. Ha a visszaállítási pont leírása tartalmazza a PowerShellt, a parancs hozzáadja a visszaállítási pont CreationTime tulajdonságának értékét egy naplófájlhoz.
$p = Get-ComputerRestorePoint
foreach ($point in $p) {
if ($point.description -like "*PowerShell*") {
Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
}
}