about_Format.ps1xml
Rövid leírás
A PowerShell 6-tól kezdődően az objektumok alapértelmezett nézetei a PowerShell-forráskódban vannak definiálva.
Létrehozhat saját Format.ps1xml
fájlokat az objektumok megjelenítésének módosításához vagy a PowerShellben létrehozott új objektumtípusok alapértelmezett megjelenítésének meghatározásához.
Hosszú leírás
A PowerShell 6-tól kezdődően az alapértelmezett nézetek a PowerShell-forráskódban vannak definiálva. A Format.ps1xml
PowerShell 5.1 és korábbi verzióiból származó fájlok nem léteznek a PowerShell 6-os és újabb verzióiban.
A PowerShell-forráskód határozza meg az objektumok alapértelmezett megjelenítését a PowerShell-konzolon. Létrehozhat saját Format.ps1xml
fájlokat az objektumok megjelenítésének módosításához vagy a PowerShellben létrehozott új objektumtípusok alapértelmezett megjelenítésének meghatározásához.
Amikor a PowerShell megjelenít egy objektumot, strukturált formázási fájlokban lévő adatokat használ az objektum alapértelmezett megjelenítésének meghatározásához. A formázási fájlok adatai határozzák meg, hogy az objektum egy táblában vagy egy listában jelenik-e meg, és meghatározza, hogy mely tulajdonságok jelenjenek meg alapértelmezés szerint.
A formázás csak a megjelenítésre van hatással. Ez nem befolyásolja, hogy mely objektumtulajdonságok legyenek átadva a folyamatnak, vagy hogyan legyenek átadva. Format.ps1xml
a fájlok nem használhatók a kivonattáblák kimeneti formátumának testreszabására.
A .ps1xml
formázási fájlok négy különböző nézetet határozhatnak meg az egyes objektumokról:
- Tábla
- Lista
- Széles
- Egyéni
Ha például egy Get-ChildItem
parancs kimenete parancsra Format-List
van állítva, Format-List
a forráskódban definiált listanézettel határozza meg, hogyan jeleníthető meg listaként a fájl- és mappaobjektumok.
Ha egy formázási fájl egy objektum több nézetét is tartalmazza, a PowerShell az első talált nézetet alkalmazza.
Az egyéni Format.ps1xml
fájlokban a nézetet XML-címkék halmaza határozza meg, amelyek a nézet nevét, az alkalmazható objektum típusát, az oszlopfejléceket és a nézet törzsében megjelenő tulajdonságokat írják le. A fájlformátumot Format.ps1xml
a rendszer az adatok felhasználónak való megjelenítése előtt alkalmazza.
Új Format.ps1xml-fájlok létrehozása
Meglévő objektumnézet megjelenítési formátumának módosításához vagy új objektumok nézeteinek hozzáadásához hozzon létre saját Format.ps1xml
fájlokat, majd vegye fel őket a PowerShell-munkamenetbe.
Ha egyéni nézet definiálásához szeretne fájlt létrehozniFormat.ps1xml
, használja a Get-FormatData és az Export-FormatData parancsmagokat. A fájl szerkesztéséhez használjon szövegszerkesztőt. A fájl menthető bármely olyan könyvtárba, amelyhez a PowerShell hozzáférhet, például a $HOME
.
Az aktuális nézet formázásának módosításához keresse meg a nézetet a formázási fájlban, majd a címkék használatával módosítsa a nézetet. Új objektumtípus nézetének létrehozásához hozzon létre egy új nézetet, vagy használjon egy meglévő nézetet modellként. A címkéket a következő szakaszban ismertetjük. Ezután törölheti a fájl összes többi nézetét, hogy a módosítások mindenki számára nyilvánvalóak legyenek, aki megvizsgálja a fájlt.
A módosítások mentése után az Update-FormatData használatával vegye fel az új fájlt a PowerShell-munkamenetbe. Ha azt szeretné, hogy a nézet elsőbbséget élvezjen a beépített fájlokban definiált nézetnél, használja a PrependPath paramétert. Update-FormatData
csak az aktuális munkamenetre van hatással. Az összes jövőbeli munkamenet módosításához adja hozzá a parancsot a Update-FormatData
PowerShell-profiljához.
Példa: Naptáradatok hozzáadása kulturális objektumokhoz
Ez a példa bemutatja, hogyan módosíthatja a System.Globalization.CultureInfo kulturális objektumok formázását, amelyeket a Get-Culture
parancsmag az aktuális PowerShell-munkamenetben hozott létre. A példában szereplő parancsok hozzáadják a Naptár tulajdonságot a kulturális objektumok alapértelmezett táblanézetéhez.
Első lépésként kérje le a formátumadatokat a forráskódfájlból, és hozzon létre egy Format.ps1xml
fájlt, amely a kulturális objektumok aktuális nézetét tartalmazza.
Get-FormatData -TypeName System.Globalization.CultureInfo |
Export-FormatData -Path $HOME\Format\CultureInfo.Format.ps1xml
Nyissa meg a CultureInfo.Format.ps1xml
fájlt bármely XML- vagy szövegszerkesztőben, például a Visual Studio Code-ban. Az alábbi XML a CultureInfo objektum nézeteit határozza meg.
A CultureInfo.Format.ps1xml
fájlnak a következő példához hasonlóan kell kinéznie:
<?xml version="1.0" encoding="utf-8"?>
<Configuration>
<ViewDefinitions>
<View>
<Name>System.Globalization.CultureInfo</Name>
<ViewSelectedBy>
<TypeName>System.Globalization.CultureInfo</TypeName>
</ViewSelectedBy>
<TableControl>
<TableHeaders>
<TableColumnHeader>
<Width>16</Width>
</TableColumnHeader>
<TableColumnHeader>
<Width>16</Width>
</TableColumnHeader>
<TableColumnHeader />
</TableHeaders>
<TableRowEntries>
<TableRowEntry>
<TableColumnItems>
<TableColumnItem>
<PropertyName>LCID</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Name</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>DisplayName</PropertyName>
</TableColumnItem>
</TableColumnItems>
</TableRowEntry>
</TableRowEntries>
</TableControl>
</View>
</ViewDefinitions>
</Configuration>
Hozzon létre egy új oszlopot a Naptár tulajdonsághoz új címkekészlet <TableColumnHeader>
hozzáadásával. A Naptár tulajdonság értéke hosszú lehet, ezért adjon meg 45 karakteres értéket.<Width>
<TableHeaders>
<TableColumnHeader>
<Width>16</Width>
</TableColumnHeader>
<TableColumnHeader>
<Width>16</Width>
</TableColumnHeader>
<TableColumnHeader>
<Width>45</Width>
</TableColumnHeader>
<TableColumnHeader/>
</TableHeaders>
Adjon hozzá egy új oszlopelemet a Naptárhoz a táblázat soraiban a <TableColumnItem>
következő címkékkel<PropertyName
:
<TableRowEntries>
<TableRowEntry>
<TableColumnItems>
<TableColumnItem>
<PropertyName>LCID</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Name</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Calendar</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>DisplayName</PropertyName>
</TableColumnItem>
</TableColumnItems>
</TableRowEntry>
</TableRowEntries>
Mentse és zárja be a fájlt. Az Update-FormatData
új formátumfájl hozzáadása az aktuális PowerShell-munkamenethez.
Ez a példa a PrependPath paraméterrel helyezi el az új fájlt az eredeti fájlnál nagyobb sorrendben. További információ: Update-FormatData.
Update-FormatData -PrependPath $HOME\Format\CultureInfo.Format.ps1xml
A módosítás teszteléséhez írja be Get-Culture
és tekintse át a Calendar tulajdonságot tartalmazó kimenetet.
Get-Culture
LCID Name Calendar DisplayName
---- ---- -------- -----------
1033 en-US System.Globalization.GregorianCalendar English (United States)
Az XML a Format.ps1xml fájlokban
A teljes sémadefiníció a Format.xsd fájlban található a GitHub PowerShell-forráskódtárában.
Az egyes Format.ps1xml
fájlok ViewDefinitions szakasza tartalmazza az <View>
egyes nézeteket meghatározó címkéket. Egy tipikus <View>
címke a következő címkéket tartalmazza:
<Name>
azonosítja a nézet nevét.<ViewSelectedBy>
megadja az objektum típusát vagy típusát, amelyre a nézet vonatkozik.<GroupBy>
meghatározza, hogy a nézetben lévő elemek hogyan lesznek egyesítve csoportokban.<TableControl>
,<ListControl>
,<WideControl>
és<CustomControl>
tartalmazza azokat a címkéket, amelyek meghatározzák, hogyan jelenjenek meg az egyes elemek.
ViewSelectedBy címke
A <ViewSelectedBy>
címke minden olyan objektumtípushoz tartalmazhat <TypeName>
címkét, amelyre a nézet vonatkozik. Vagy tartalmazhat olyan címkét <SelectionSetName>
, amely egy címke használatával <SelectionSet>
máshol definiált kijelölési csoportra hivatkozik.
GroupBy címke
A <GroupBy>
címke egy címkét <PropertyName>
tartalmaz, amely meghatározza azt az objektumtulajdonságot, amellyel csoportosítani kell az elemeket. Olyan címkét <Label>
is tartalmaz, amely megadja az egyes csoportokhoz címkéként használandó sztringet, vagy egy <CustomControlName>
címkével máshol definiált egyéni vezérlőre hivatkozó címkét <Control>
. A <Control>
címke egy címkét <Name>
és egy címkét <CustomControl>
tartalmaz.
TableControlTag
A <TableControl>
címke általában olyan címkéket tartalmaz <TableHeaders>
, <TableRowEntries>
amelyek meghatározzák a tábla fejeinek és sorainak formázását. A <TableHeaders>
címke általában olyan címkéket tartalmaz <TableColumnHeader>
, amelyek tartalmaznak <Label>
, <Width>
és <Alignment>
címkéket. A <TableRowEntries>
címke a tábla minden sorához tartalmaz <TableRowEntry>
címkéket. A <TableRowEntry>
címke egy címkét <TableColumnItems>
tartalmaz, amely a sor minden oszlopához tartalmaz egy <TableColumnItem>
címkét. A címke általában egy olyan címkét <PropertyName>
tartalmaz, <TableColumnItem>
amely azonosítja a megadott helyen megjelenítendő objektumtulajdonságot, vagy egy <ScriptBlock>
olyan címkét, amely szkriptkódot tartalmaz, amely kiszámítja a helyen megjelenítendő eredményt.
Feljegyzés
A szkriptblokkok máshol is használhatók olyan helyeken, ahol a számított eredmények hasznosak lehetnek.
A <TableColumnItem>
címke tartalmazhat olyan címkét <FormatString>
is, amely meghatározza a tulajdonság vagy a számított eredmények megjelenítését.
ListControl címke
A <ListControl>
címke általában tartalmaz egy címkét <ListEntries>
. A <ListEntries>
címke tartalmaz egy címkét <ListEntry>
. A <ListEntry>
címke tartalmaz egy címkét <ListItems>
. A <ListItems>
címke címkéket tartalmaz <ListItem>
, amelyek címkéket tartalmaznak <PropertyName>
. A <PropertyName>
címkék megadják a listában megadott helyen megjelenítendő objektumtulajdonságot. Ha a nézetkijelölés kijelöléskészlettel van definiálva, az és <ListEntry>
a <ListControl>
címkék egy vagy több <TypeName>
címkét tartalmazó címkét <EntrySelectedBy>
is tartalmazhatnak. Ezek a <TypeName>
címkék határozzák meg a címke megjelenítendő objektumtípusát <ListControl>
.
WideControl címke
A <WideControl>
címke általában tartalmaz egy címkét <WideEntries>
. A <WideEntries>
címke egy vagy több <WideEntry>
címkét tartalmaz. Egy <WideEntry>
címke egy címkét <WideItem>
tartalmaz.
A <WideItem>
címkéknek címkét <PropertyName>
vagy címkét <ScriptBlock>
kell tartalmazniuk. A <PropertyName>
címke a nézetben megadott helyen megjelenítendő tulajdonságot adja meg. A <ScriptBlock>
címke egy szkriptet ad meg, amely kiértékelhető és megjeleníthető a nézetben megadott helyen.
A <WideItem>
címkék tartalmazhatnak olyan címkét <FormatString>
, amely meghatározza a tulajdonság megjelenítésének módját.
CustomControl címke
A <CustomControl>
címke lehetővé teszi, hogy szkriptblokk használatával definiáljon egy formátumot. A <CustomControl>
címkék általában több <CustomEntry>
címkét tartalmazó címkét <CustomEntries>
tartalmaznak. Minden <CustomEntry>
címke tartalmaz egy címkét <CustomItem>
, amely különböző címkéket tartalmazhat, amelyek a nézetben megadott hely tartalmát és formázását határozzák meg, beleértve <Text>
a , <Indentation>
, <ExpressionBinding>
és <NewLine>
címkéket.
Tracing Format.ps1xml fájl használata
A fájlok betöltésével vagy alkalmazásával Format.ps1xml
kapcsolatos hibák észleléséhez használja a Trace-Command
parancsmagot a következő formátumösszetevők bármelyikével a Név paraméter értékeként:
- FormatFileLoading
- FormatViewBinding
További információ: Trace-Command és Get-TraceSource.
Format.ps1xml fájl aláírása
A fájl felhasználóinak Format.ps1xml
védelméhez digitális aláírással írja alá a fájlt. További információ: about_Signing.
Minta XML formátum–táblázat egyéni nézethez
Az alábbi XML-minta létrehoz egy Format-Table
egyéni nézetet a System.IO.DirectoryInfo és a System.IO.FileInfo által Get-ChildItem
létrehozott objektumokhoz. Az egyéni nézet neve mygciview , és hozzáadja a CreationTime oszlopot a táblához.
Az egyéni nézet létrehozásához használja a Get-FormatData
Export-FormatData
parancsmagokat egy .ps1xml
fájl létrehozásához. Ezután szerkessze a .ps1xml
fájlt az egyéni nézet kódjának létrehozásához. A .ps1xml
fájl bármely olyan könyvtárban tárolható, amelyhez a PowerShell hozzáférhet. Például egy alkönyvtár a $HOME
.
A .ps1xml
fájl létrehozása után a Update-FormatData
parancsmaggal vegye fel a nézetet az aktuális PowerShell-munkamenetbe. Vagy adja hozzá a frissítési parancsot a PowerShell-profilhoz, ha az összes PowerShell-munkamenetben elérhető nézetre van szüksége.
Ebben a példában az egyéni nézetnek táblaformátumot kell használnia Format-Table
, ellenkező esetben sikertelen.
A Format-Table
Nézet paraméterrel megadhatja az egyéni nézet nevét, a mygciview értékét, és formázhatja a tábla kimenetét a CreationTime oszlopmal. Példa a parancs futtatására: Format-Table.
Feljegyzés
Bár a forráskódból lekérheti a formázási XML-t egy egyéni nézet létrehozásához, további fejlesztésre lehet szükség a kívánt eredmény eléréséhez.
Az alábbi Get-FormatData
parancsban a PowerShellVersion paraméter alternatívája biztosítja, hogy a rendszer minden helyi formázási információt visszaadjon. Egy adott PowerShell-verzió helyett használja -PowerShellVersion $PSVersionTable.PSVersion
.
Get-FormatData -PowerShellVersion 5.1 -TypeName System.IO.DirectoryInfo |
Export-FormatData -Path ./Mygciview.Format.ps1xml
Update-FormatData -AppendPath ./Mygciview.Format.ps1xml
<?xml version="1.0" encoding="utf-8"?>
<Configuration>
<ViewDefinitions>
<View>
<Name>mygciview</Name>
<ViewSelectedBy>
<TypeName>System.IO.DirectoryInfo</TypeName>
<TypeName>System.IO.FileInfo</TypeName>
</ViewSelectedBy>
<GroupBy>
<PropertyName>PSParentPath</PropertyName>
</GroupBy>
<TableControl>
<TableHeaders>
<TableColumnHeader>
<Label>Mode</Label>
<Width>7</Width>
<Alignment>Left</Alignment>
</TableColumnHeader>
<TableColumnHeader>
<Label>LastWriteTime</Label>
<Width>26</Width>
<Alignment>Right</Alignment>
</TableColumnHeader>
<TableColumnHeader>
<Label>CreationTime</Label>
<Width>26</Width>
<Alignment>Right</Alignment>
</TableColumnHeader>
<TableColumnHeader>
<Label>Length</Label>
<Width>14</Width>
<Alignment>Right</Alignment>
</TableColumnHeader>
<TableColumnHeader>
<Label>Name</Label>
<Alignment>Left</Alignment>
</TableColumnHeader>
</TableHeaders>
<TableRowEntries>
<TableRowEntry>
<Wrap />
<TableColumnItems>
<TableColumnItem>
<PropertyName>ModeWithoutHardLink</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>LastWriteTime</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>CreationTime</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Length</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Name</PropertyName>
</TableColumnItem>
</TableColumnItems>
</TableRowEntry>
</TableRowEntries>
</TableControl>
</View>
</ViewDefinitions>
</Configuration>
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: