Udostępnij za pośrednictwem


about_Data_Sections

Krótki opis

W tym artykule opisano sekcje dane, które izolować ciągi tekstowe i inne dane tylko do odczytu z logiki skryptu.

Długi opis

Skrypty przeznaczone dla programu PowerShell mogą zawierać co najmniej jedną sekcję dane zawierającą tylko dane. Możesz dołączyć co najmniej jedną sekcję Dane do dowolnego skryptu, funkcji lub funkcji zaawansowanej. Zawartość sekcji Dane jest ograniczona do określonego podzestawu języka skryptów programu PowerShell.

Oddzielenie danych od logiki kodu ułatwia identyfikowanie zarówno logiki, jak i danych oraz zarządzanie nimi. Umożliwia to posiadanie oddzielnych plików zasobów ciągu dla tekstu, takich jak komunikaty o błędach i ciągi Pomocy. Izoluje również logikę kodu, która ułatwia testowanie zabezpieczeń i walidacji.

W programie PowerShell sekcja Dane służy do obsługi międzynarodowych skryptów. Sekcje danych ułatwiają izolowanie, lokalizowanie i przetwarzanie ciągów, które zostaną przetłumaczone na wiele języków interfejsu użytkownika.

Sekcja Dane jest funkcją programu PowerShell 2.0. Skrypty z sekcjami danych nie będą uruchamiane w programie PowerShell 1.0 bez poprawki.

Składnia

Składnia sekcji Dane jest następująca:

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

Słowo kluczowe Dane jest wymagane. Nie uwzględnia wielkości liter. Dozwolona zawartość jest ograniczona do następujących elementów:

  • Wszystkie operatory programu PowerShell, z wyjątkiem -match

  • If, Else, i ElseIf instrukcje

  • Następujące zmienne automatyczne: $PsCulture, , $PsUICulture$True, $Falsei$Null

  • Komentarze

  • Pipelines

  • Instrukcje rozdzielone średnikami (;)

  • Literały, takie jak:

    a
    1
    1,2,3
    "PowerShell 2.0"
    @( "red", "green", "blue" )
    @{ a = 0x1; b = "great"; c ="script" }
    [XML] @'
    <p> Hello, World </p>
    '@
    
  • Polecenia cmdlet, które są dozwolone w sekcji Dane. Domyślnie dozwolone jest tylko ConvertFrom-StringData polecenie cmdlet.

  • Polecenia cmdlet, które można zezwolić w sekcji Dane przy użyciu parametru -SupportedCommand .

W przypadku używania ConvertFrom-StringData polecenia cmdlet w sekcji Dane można ująć pary klucz-wartość w ciągach pojedynczego cudzysłów lub podwójnego cudzysłów albo w cudzysłów pojedynczych lub podwójnych cudzysłów tutaj. Jednak ciągi zawierające zmienne i podrażenia muszą być ujęte w ciągi jednocytowe lub w ciągach z jednym cudzysłów, aby zmienne nie zostały rozwinięte, a podrażenia nie są wykonywalne.

-SupportedCommand

Parametr -SupportedCommand umożliwia wskazanie, że polecenie cmdlet lub funkcja generuje tylko dane. Jest ona przeznaczona do umożliwienia użytkownikom dołączania poleceń cmdlet i funkcji w sekcji danych, którą napisali lub przetestowali.

Wartość -SupportedCommand to rozdzielona przecinkami lista co najmniej jednego polecenia cmdlet lub nazwy funkcji.

Na przykład poniższa sekcja danych zawiera polecenie cmdlet napisane przez użytkownika , Format-Xmlktóre formatuje dane w pliku XML:

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

Korzystanie z sekcji danych

Aby użyć zawartości sekcji Dane, przypisz ją do zmiennej i użyj notacji zmiennych, aby uzyskać dostęp do zawartości.

Na przykład poniższa sekcja danych zawiera ConvertFrom-StringData polecenie, które konwertuje ciąg here-string na tabelę skrótów. Tabela skrótów jest przypisywana do zmiennej $TextMsgs .

Zmienna $TextMsgs nie jest częścią sekcji danych.

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

Aby uzyskać dostęp do kluczy i wartości w tabeli skrótów w programie $TextMsgs, użyj następujących poleceń.

$TextMsgs.Text001
$TextMsgs.Text002

Alternatywnie możesz umieścić nazwę zmiennej w definicji sekcji Dane. Na przykład:

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

$TextMsgs

Wynik jest taki sam jak w poprzednim przykładzie.

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

Przykłady

Proste ciągi danych.

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

Ciągi zawierające dozwolone zmienne.

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

Jeden cytowany tutaj ciąg, który używa ConvertFrom-StringData polecenia cmdlet :

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

Cudzysłów w tym miejscu ciąg używający ConvertFrom-StringData polecenia cmdlet :

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

Sekcja danych zawierająca napisane przez użytkownika polecenie cmdlet, które generuje dane:

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

Zobacz też

about_Automatic_Variables

about_Comparison_Operators

about_Hash_Tables

about_If

about_Operators

about_Quoting_Rules

about_Script_Internationalization

ConvertFrom-StringData

Import-LocalizedData