Megosztás a következőn keresztül:


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ése
    • a* egyezések aA, agés Apple
    • a* nem egyezik banana
  • ? - Sztringek esetén egyeznie kell egy karakterrel ebben a pozícióban
    • ?n egyezések an, inés on
    • ?n nem egyezik ran
  • ? - Fájlok és könyvtárak esetében egyezzen nulla vagy egy karakter az adott pozícióban
    • ?.txt egyezések a.txt és b.txt
    • ?.txt nem egyezik ab.txt
  • [ ] - Egy karaktertartomány egyeztetése
    • [a-l]ook egyezések book, cookés look
    • [a-l]ook nem egyezik took
  • [ ] - Adott karakterek egyeztetése
    • [bc]ook egyezések book és cook
    • [bc]ook nem egyezik hook
  • `* - Bármely karakter egyeztetése konstansként (nem helyettesítő karakterként)
    • 12`*4 Mérkőzések 12*4
    • 12`*4 nem egyezik 1234

Ugyanabban a szómintában több helyettesítő karakter is szerepelhet. Ha például az al 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)"
  }
}

Lásd még