Dela via


Om dataavsnitt

Kort beskrivning

Förklarar dataavsnitt, som isolerar textsträngar och andra skrivskyddade data från skriptlogik.

Lång beskrivning

Skript som är utformade för PowerShell kan ha ett eller flera dataavsnitt som endast innehåller data. Du kan inkludera ett eller flera dataavsnitt i valfritt skript, en funktion eller en avancerad funktion. Innehållet i avsnittet Data är begränsat till en angiven delmängd av PowerShell-skriptspråket.

Genom att separera data från kodlogik blir det enklare att identifiera och hantera både logik och data. Det gör att du kan ha separata strängresursfiler för text, till exempel felmeddelanden och hjälpsträngar. Den isolerar också kodlogiken, vilket underlättar säkerhets- och valideringstester.

I PowerShell används avsnittet Data för att stödja skript internationalisering. Du kan använda dataavsnitt för att göra det enklare att isolera, hitta och bearbeta strängar som ska översättas till många språk i användargränssnittet.

Avsnittet Data är en PowerShell 2.0-funktion. Skript med dataavsnitt körs inte i PowerShell 1.0 utan revision.

Syntax

Syntaxen för ett dataavsnitt är följande:

DATA [<variable-name>] [-supportedCommand <cmdlet-name>] {
    <Permitted content>
}

Nyckelordet Data krävs. Det är inte skiftlägeskänsligt. Det tillåtna innehållet är begränsat till följande element:

  • Alla PowerShell-operatorer, förutom -match

  • If, Elseoch ElseIf -instruktioner

  • Följande automatiska variabler: $PsCulture, $PsUICulture, $True, $Falseoch $Null

  • Kommentarer

  • Pipelines

  • Instruktioner avgränsade med semikolon (;)

  • Literaler, till exempel följande:

    a
    1
    1,2,3
    "PowerShell 2.0"
    @( "red", "green", "blue" )
    @{ a = 0x1; b = "great"; c ="script" }
    [XML] @'
    <p> Hello, World </p>
    '@
    
  • Cmdletar som tillåts i ett dataavsnitt. Som standard är endast cmdleten ConvertFrom-StringData tillåten.

  • Cmdletar som du tillåter i ett dataavsnitt med hjälp av parametern -SupportedCommand .

När du använder cmdleten ConvertFrom-StringData i ett dataavsnitt kan du omsluta nyckel/värde-paren i strängar med enkla citattecken eller dubbla citattecken eller i enkla citattecken eller dubbelciterade här-strängar. Strängar som innehåller variabler och underuttryck måste dock omges av strängar med en citattecken eller i enkelciterade här-strängar så att variablerna inte expanderas och underuttrycken inte kan köras.

-SupportedCommand

Med -SupportedCommand parametern kan du ange att en cmdlet eller funktion endast genererar data. Den är utformad för att tillåta användare att inkludera cmdletar och funktioner i ett dataavsnitt som de har skrivit eller testat.

Värdet för -SupportedCommand är en kommaavgränsad lista med en eller flera cmdlet- eller funktionsnamn.

Följande dataavsnitt innehåller till exempel en användarskriven cmdlet, , Format-XMLsom formaterar data i en XML-fil:

DATA -supportedCommand Format-Xml
{
    Format-Xml -Strings string1, string2, string3
}

Använda ett dataavsnitt

Om du vill använda innehållet i ett dataavsnitt tilldelar du det till en variabel och använder variabelnotation för att komma åt innehållet.

Följande dataavsnitt innehåller till exempel ett ConvertFrom-StringData kommando som konverterar here-string till en hash-tabell. Hash-tabellen tilldelas till variabeln $TextMsgs .

Variabeln $TextMsgs är inte en del av dataavsnittet.

$TextMsgs = DATA {
    ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}

Använd följande kommandon för att komma åt nycklar och värden i hash-tabellen i $TextMsgs.

$TextMsgs.Text001
$TextMsgs.Text002

Alternativt kan du ange variabelnamnet i definitionen av avsnittet Data. Exempel:

DATA TextMsgs {
    ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}

$TextMsgs

Resultatet är detsamma som i föregående exempel.

Name                           Value
----                           -----
Text001                        Windows 7
Text002                        Windows Server 2008 R2

Exempel

Enkla datasträngar.

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."
}

Strängar som innehåller tillåtna variabler.

DATA {
    if ($null) {
        "To get help for this cmdlet, type get-help new-dictionary."
    }
}

En enkel citerad här-sträng som använder cmdleten ConvertFrom-StringData :

DATA {
    ConvertFrom-StringData -stringdata @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}

En dubbelciterad här-sträng som använder cmdleten ConvertFrom-StringData :

DATA  {
    ConvertFrom-StringData -stringdata @"
Msg1 = To start, press any key.
Msg2 = To exit, type "quit".
"@
}

Ett dataavsnitt som innehåller en användarskriven cmdlet som genererar data:

DATA -supportedCommand Format-XML {
    Format-Xml -strings string1, string2, string3
}

Se även

about_Automatic_Variables

about_Comparison_Operators

about_Hash_Tables

about_If

about_Operators

about_Quoting_Rules

about_Script_Internationalization

ConvertFrom-StringData

Import-LocalizedData