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.