about_Data_Sections
Korte beschrijving
Hierin worden gegevenssecties uitgelegd, waarmee tekenreeksen en andere alleen-lezen gegevens uit scriptlogica worden geïsoleerd.
Lange beschrijving
Scripts die zijn ontworpen voor PowerShell, kunnen een of meer gegevenssecties bevatten die alleen gegevens bevatten. U kunt een of meer gegevenssecties opnemen in een script, functie of geavanceerde functie. De inhoud van de sectie Gegevens 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 wordt de sectie Gegevens gebruikt ter ondersteuning van internationalisatie van scripts. U kunt gegevenssecties gebruiken om tekenreeksen die in veel gebruikersinterfacetalen (UI) worden vertaald gemakkelijker te isoleren, te zoeken en te verwerken.
De sectie Gegevens is een PowerShell 2.0-functie. Scripts met gegevenssecties worden niet uitgevoerd in PowerShell 1.0 zonder revisie.
Syntaxis
De syntaxis voor een sectie Gegevens is als volgt:
DATA [<variable-name>] [-supportedCommand <cmdlet-name>] {
<Permitted content>
}
Het trefwoord Gegevens is vereist. Het is niet hoofdlettergevoelig. De toegestane inhoud is beperkt tot de volgende elementen:
Alle PowerShell-operators, behalve
-match
If
,Else
enElseIf
instructiesDe volgende automatische variabelen:
$PsCulture
,$PsUICulture
,$True
,$False
en$Null
Opmerkingen
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" } [XML] @' <p> Hello, World </p> '@
Cmdlets die zijn toegestaan in een sectie Gegevens. Standaard is alleen de
ConvertFrom-StringData
cmdlet toegestaan.Cmdlets die u in een sectie Gegevens toestaat met behulp van de
-SupportedCommand
parameter.
Wanneer u de ConvertFrom-StringData
cmdlet in een sectie Gegevens gebruikt, kunt u de sleutel-waardeparen tussen enkele aanhalingstekens of tekenreeksen met dubbele aanhalingstekens of tussen enkele aanhalingstekens of hier tussen dubbele aanhalingstekens zetten. 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 -SupportedCommand
parameter kunt u aangeven dat een cmdlet of functie alleen gegevens genereert. Het is ontworpen om gebruikers toe te staan cmdlets en functies op te nemen in een gegevenssectie die ze hebben geschreven of getest.
De waarde van -SupportedCommand
is een door komma's gescheiden lijst met een of meer cmdlets of functienamen.
De volgende gegevenssectie 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 gegevenssectie gebruiken
Als u de inhoud van een sectie Gegevens wilt gebruiken, wijst u deze toe aan een variabele en gebruikt u de variabele notatie voor toegang tot de inhoud.
De volgende gegevenssectie 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 gegevenssectie.
$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 Gegevens 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
}
Zie ook
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor