Helyettesítő karakterek támogatása parancsmag-paraméterekben

Gyakran előfordul, hogy olyan parancsmagot kell tervezni, amely nem egyetlen erőforráson, hanem erőforráscsoporton fut. Előfordulhat például, hogy egy parancsmagnak meg kell találnia az adattár összes olyan fájlját, amely ugyanazokkal a névvel vagy kiterjesztéssel van bővítve. Ha olyan parancsmagot tervez meg, amely egy erőforráscsoporton fog futni, támogatnia kell a helyettesítő karaktereket.

Megjegyzés

A helyettesítő karakterek használata más néven a (angol betűszabás) rövidítés.

Windows PowerShell Helyettesítő karaktereket használó parancsmagok

Számos Windows PowerShell parancsmag támogatja a helyettesítő karaktereket a paraméterértékeikhez. Például szinte minden olyan parancsmag, amely vagy paraméterrel rendelkezik, támogatja a Name Path helyettesítő karaktereket ezekhez a paraméterekhez. (Bár a legtöbb paraméterrel rendelkezik parancsmag rendelkezik egy olyan paraméterrel is, amely nem támogatja Path a LiteralPath helyettesítő karaktereket.) Az alábbi parancs bemutatja, hogyan lehet helyettesítő karakterrel visszaadni az aktuális munkamenet összes olyan parancsmagját, amelynek a neve tartalmazza a Get parancsot.

Get-Command get-*

Támogatott helyettesítő karakterek

Windows PowerShell a következő helyettesítő karaktereket támogatja.

Helyettesítő Leírás Példa Egyezik Nem egyezik
* Nulla vagy több karakterre illeszkedik, a megadott pozíciótól kezdődően a* A, ag, Apple
? A megadott pozícióban található bármely karakterre illeszkedik ?n An, in, on Futott
[ ] Karaktertartományra illeszkedik [a-l]ook book, cook, look nook, took
[ ] A megadott karakterekre illeszkedik [bn]ook book, nook cook, look

Helyettesítő karaktereket támogató parancsmagok tervezésekor engedélyezze helyettesítő karakterek kombinációit. A következő parancs például az parancsmagot használja a c:\Techdocs mappában található összes .txt-fájl lekéréséhez, amelyek az "a" és "l" betűkkel Get-ChildItem kezdődnek.

Get-ChildItem c:\techdocs\[a-l]\*.txt

Az előző parancs a tartomány helyettesítő karakterének használatával határozza meg, hogy a fájl nevének az "a" és "l" karakterrel kell kezdődni, és a helyettesítő karaktert használja helyőrzőként a fájlnév első betűje és a.txtkiterjesztése közötti [a-l] * karakterekhez.

Az alábbi példa egy tartomány helyettesítő karakteres mintáját használja, amely kizárja a "d" betűt, de tartalmazza az "a" és az "f" között található összes többi betűt.

Get-ChildItem c:\techdocs\[a-cef]\*.txt

Literális karakterek kezelése helyettesítő karaktermintákban

Ha a megadott helyettesítő karakter olyan literális karaktereket tartalmaz, amelyek nem értelmezhetők helyettesítő karakterként, használja a visszacsatolási karaktert ( ` ) escape-karakterként. Ha literális karaktereket ad meg a PowerShell API-ban, használjon egyetlen háttért. Ha literális karaktereket ad meg a PowerShell-parancssorban, használjon két visszacsatot.

Az alábbi minta például két szögletes zárójelet tartalmaz, amit szó szerint kell venni.

A PowerShell API-ban a következőt használja:

  • "John Smith ` [*']"

A PowerShell parancssorból használva:

  • "John Smith ` ` [* ` ']"

Ez a minta megegyezik "John Smith [Marketing]" vagy "John Smith [Fejlesztés]" mintával. Például:

PS> "John Smith [Marketing]" -like "John Smith ``[*``]"
True

PS> "John Smith [Development]" -like "John Smith ``[*``]"
True

Parancsmagkimenet és helyettesítő karakterek

Ha a parancsmag-paraméterek támogatják a helyettesítő karaktereket, a művelet általában tömbkimenetet hoz létre. Esetenként nincs értelme tömbkimenetet támogatni, mert előfordulhat, hogy a felhasználó csak egyetlen elemet használ. A parancsmag például nem támogatja a tömbkimenetet, Set-Location mert a felhasználó csak egyetlen helyet állít be. Ebben az esetben a parancsmag továbbra is támogatja a helyettesítő karaktereket, de egyetlen helyre kényszeríti a feloldásokat.

Lásd még:

Windows PowerShell-parancsmag írása

Helyettesítő karakterespattern osztály