Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Korte beschrijving
In dit artikel worden data-secties uitgelegd, waarmee tekststrings en andere read-only gegevens van de scriptlogica worden geïsoleerd.
Lange beschrijving
Scripts die zijn ontworpen voor PowerShell, kunnen een of meer data secties bevatten die alleen gegevens bevatten. U kunt een of meer data secties opnemen in een script, functie of geavanceerde functie. De inhoud van de sectie data is beperkt tot een opgegeven subset van de PowerShell-scripttaal.
Door gegevens van codelogica te scheiden, is het eenvoudiger om zowel logica als gegevens te identificeren en te beheren. Hiermee kunt u afzonderlijke tekenreeksresourcebestanden voor tekst hebben, zoals foutberichten en Help-tekenreeksen. Het isoleert ook de codelogica, waardoor beveiligings- en validatietests mogelijk zijn.
In PowerShell kunt u de sectie data gebruiken om internationalisering van scripts te ondersteunen. U kunt data secties gebruiken om gemakkelijker tekenreeksen te isoleren, te zoeken en te verwerken die in andere talen kunnen worden vertaald.
De sectie data is toegevoegd in de functie PowerShell 2.0.
Syntaxis
De syntaxis voor een data sectie is als volgt:
data [<variable-name>] [-SupportedCommand <cmdlet-name>] {
<Permitted content>
}
Het data trefwoord is vereist. Het is niet hoofdlettergevoelig. De toegestane inhoud is beperkt tot de volgende elementen:
Alle PowerShell-operators, behalve
-matchif,elseenelseifinstructiesDe volgende automatische variabelen:
$PSCulture,$PSUICulture,$true,$falseen$nullOpmerkingen
Pipelines
Instructies gescheiden door puntkomma's (
;)Letterlijke waarden, zoals de volgende:
a 1 1,2,3 "PowerShell 2.0" @( "red", "green", "blue" ) @{ a = 0x1; b = "great"; c ="script" } @' <p> Hello, World </p> '@Cmdlets die standaard zijn toegestaan in een
datasectie. Standaard is alleen deConvertFrom-StringDatacmdlet toegestaan.Cmdlets die u in een
datasectie toestaat met behulp van de parameter-SupportedCommand.
Wanneer u de cmdlet ConvertFrom-StringData in een data-sectie gebruikt, kunt u de sleutel-waardeparen tussen enkele of dubbele aanhalingstekens plaatsen, of gebruik maken van hier-tekenreeksen met enkele of dubbele aanhalingstekens. Tekenreeksen die variabelen en subexpressies bevatten, moeten echter tussen tekenreeksen met één aanhalingstekens of tussen enkele aanhalingstekens hier-tekenreeksen staan, zodat de variabelen niet worden uitgevouwen en de subexpressies niet uitvoerbaar zijn.
-SupportedCommand
Met de parameter SupportedCommand kunt u aangeven dat een cmdlet of functie alleen gegevens genereert. Het is ontworpen om gebruikers in staat te stellen cmdlets en functies toe te voegen in een data-sectie die zij hebben geschreven of getest.
De waarde van SupportedCommand is een door komma's gescheiden lijst met een of meer cmdlets of functienamen.
De volgende data sectie bevat bijvoorbeeld een door de gebruiker geschreven cmdlet, Format-Xml, waarmee gegevens in een XML-bestand worden opgemaakt:
data -SupportedCommand Format-Xml
{
Format-Xml -Strings string1, string2, string3
}
Een data-sectie gebruiken
Als u de inhoud van een data sectie wilt gebruiken, wijst u deze toe aan een variabele en gebruikt u de variabele notatie voor toegang tot de inhoud.
De volgende data sectie bevat bijvoorbeeld een ConvertFrom-StringData opdracht waarmee de hier-tekenreeks wordt geconverteerd naar een hash-tabel. De hash-tabel wordt toegewezen aan de $TextMsgs variabele.
De $TextMsgs variabele maakt geen deel uit van de sectie data.
$TextMsgs = data {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Gebruik de volgende opdrachten om toegang te krijgen tot de sleutels en waarden in de hash-tabel in $TextMsgs.
$TextMsgs.Text001
$TextMsgs.Text002
U kunt ook de naam van de variabele in de definitie van de sectie data plaatsen. Voorbeeld:
data TextMsgs {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
$TextMsgs
Het resultaat is hetzelfde als in het vorige voorbeeld.
Name Value
---- -----
Text001 Windows 7
Text002 Windows Server 2008 R2
Voorbeelden
Eenvoudige gegevensreeksen.
data {
"Thank you for using my PowerShell Organize.pst script."
"It is provided free of charge to the community."
"I appreciate your comments and feedback."
}
Tekenreeksen met toegestane variabelen.
data {
if ($null) {
"To get help for this cmdlet, type Get-Help New-Dictionary."
}
}
Een enkele aanhalingstekenreeks die gebruikmaakt van de ConvertFrom-StringData cmdlet:
data {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Een tekenreeks met dubbele aanhalingstekens die gebruikmaakt van de ConvertFrom-StringData cmdlet:
data {
ConvertFrom-StringData -StringData @"
Msg1 = To start, press any key.
Msg2 = To exit, type "quit".
"@
}
Een gegevenssectie met een door de gebruiker geschreven cmdlet waarmee gegevens worden gegenereerd:
data -SupportedCommand Format-Xml {
Format-Xml -Strings string1, string2, string3
}