Udostępnij za pośrednictwem


ConvertFrom-StringData

Konwertuje ciąg zawierający co najmniej jedną parę klucz i wartość na tabelę skrótów.

Składnia

ConvertFrom-StringData
                [-StringData] <String>
                [<CommonParameters>]

Opis

Polecenie cmdlet ConvertFrom-StringData konwertuje ciąg zawierający co najmniej jedną parę klucz i wartość na tabelę skrótów. Ponieważ każda para klucz/wartość musi znajdować się w osobnym wierszu, te ciągi są często używane jako format wejściowy.

Polecenie cmdlet ConvertFrom-StringData jest uważane za bezpieczne polecenie cmdlet, które może być używane w sekcji DATA skryptu lub funkcji. W przypadku użycia w sekcji DATA zawartość ciągu musi być zgodna z regułami sekcji DATA. Aby uzyskać więcej informacji, zobacz about_Data_Sections.

ConvertFrom-StringData obsługuje sekwencje znaków ucieczki dozwolone przez konwencjonalne narzędzia tłumaczenia maszynowego. Oznacza to, że polecenie cmdlet może interpretować ukośniki odwrotne (\) jako znaki ucieczki w danych ciągu przy użyciu metody Regex.Unescape, zamiast znaku backtick programu Windows PowerShell ('), który normalnie sygnalizuje koniec wiersza w skrypce. Wewnątrz ciągu tutaj znak backtick nie działa. Możesz również zachować ukośnik odwrotny literału w wynikach, uciekając przed poprzednim ukośnikiem odwrotnym, w następujący sposób: \\. Niezasłane znaki ukośnika odwrotnego, takie jak te, które są często używane w ścieżkach plików, mogą być renderowane jako niedozwolone sekwencje ucieczki w wynikach.

Przykłady

Przykład 1. Konwertowanie pojedynczego cudzysłów tutaj-ciągu na tabelę skrótów

PS C:\> $Here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@
PS C:\> ConvertFrom-StringData -StringData $Here
Name                           Value
----                           -----
Msg3                           The specified variable does not exist.
Msg2                           Credentials are required for this command.
Msg1                           The string parameter is required.

Te polecenia konwertują jeden cytowany tutaj ciąg komunikatów użytkownika na tabelę skrótów. W ciągu jednocygowym wartości nie są zastępowane zmiennymi, a wyrażenia nie są obliczane.

Pierwsze polecenie tworzy tutaj-ciąg i zapisuje go w zmiennej $Here.

Drugie polecenie używa polecenia cmdlet ConvertFrom-StringData, aby przekonwertować tutaj-ciąg w zmiennej $Here na tabelę skrótów.

Przykład 2. Konwertowanie dwucytowego ciągu tutaj na tabelę skrótów

PS C:\> $P = @"
ISE = Windows PowerShell Integrated Scripting Environment
"@
PS C:\> $P | Get-Member
TypeName: System.String

Name             MemberType            Definition
----             ----------            ----------
Clone            Method                System.Object Clone()

PS C:\> $Hash = ConvertFrom-StringData -StringData $P
PS C:\> $Hash | Get-Member
TypeName: System.Collections.Hashtable
Name              MemberType            Definition
----              ----------            ----------
Add               Method                System.Void Add(Object key, Object

Te polecenia pokazują, że ConvertFrom-StringData rzeczywiście konwertuje ciąg here-string na tabelę skrótów.

Pierwsze polecenie tworzy dwukrotnie cytowany tutaj ciąg, który zawiera jedną parę klucz/wartość i zapisuje go w zmiennej $P.

Drugie polecenie używa operatora potoku (|) do wysyłania zmiennej $P do polecenia cmdlet Get-Member. Wynik pokazuje, że $P jest ciągiem (System.String).

Trzecie polecenie używa polecenia cmdlet ConvertFrom-StringData, aby przekonwertować tutaj-ciąg w $P na tabelę skrótów. Polecenie przechowuje wynik w zmiennej $Hash.

Ostatnie polecenie używa operatora potoku (|) do wysyłania zmiennej $Hash do polecenia cmdlet Get-Member. Wynik pokazuje, że zawartość zmiennej $Hash jest tabelą skrótów (System.Collections.Hashtable).

Przykład 3. Konwertowanie tutaj-ciągu na tabelę skrótów

PS C:\> ConvertFrom-StringData -StringData @'
Name = Disks.ps1

# Category is optional.

Category = Storage
Cost = Free
'@
Name                           Value
----                           -----
Cost                           Free
Category                       Storage
Name                           Disks.ps1

To polecenie konwertuje jeden cudzysłów tutaj ciąg zawierający wiele par klucz/wartość do tabeli skrótów.

W tym poleceniu wartość parametru StringData jest ciągiem tutaj, a nie zmienną zawierającą tutaj-ciąg. Dowolny format jest prawidłowy.

Ten ciąg zawiera komentarz dotyczący jednego z ciągów. Komentarze są prawidłowe w ciągach, pod warunkiem, że komentarz znajduje się w innym wierszu niż para klucz/wartość.

Przykład 4. Konwertowanie ciągu na tabelę skrótów

PS C:\> $A = ConvertFrom-StringData -StringData "Top = Red `n Bottom = Blue"
PS C:\> "Top = " + $A.Top
Top = Red PS C:\> "Bottom = " + $A.Bottom
Bottom = Blue

Ten przykład konwertuje zwykły ciąg dwucytowy (a nie ciąg tutaj) na tabelę skrótów i zapisuje go w zmiennej $A.

Aby spełnić warunek, że każda para klucz/wartość musi znajdować się w osobnym wierszu, używa nowego znaku programu Windows PowerShell (n), aby oddzielić pary.

Wynikiem jest tabela skrótów danych wejściowych. Pozostałe polecenia wyświetlają dane wyjściowe.

Przykład 5. Użycie ConvertFrom-StringData w sekcji DATA skryptu

PS C:\> $TextMsgs = DATA {
ConvertFrom-StringData @'
Text001 = The $Notebook variable contains the name of the user's system notebook.
Text002 = The $MyNotebook variable contains the name of the user's private notebook.
'@
}
PS C:\> $TextMsgs.Text001
The $Notebook variable contains the name of the user's system notebook. PS C:\> $TextMsgs.Text002
The $MyNotebook variable contains the name of the user's private notebook.

W tym przykładzie pokazano polecenie ConvertFrom-StringData używane w sekcji DATA skryptu. Instrukcje poniżej sekcji DANE wyświetlają tekst użytkownikowi.

Ponieważ tekst zawiera nazwy zmiennych, musi być ujęta w ciąg o pojedynczym cudzysłowie, aby zmienne zostały interpretowane dosłownie i nie zostały rozwinięte. Zmienne nie są dozwolone w sekcji DANE.

Przykład 6. Użyj operatora potoku, aby przekazać ciąg

PS C:\> $Here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@
PS C:\> $Hash = $Here | ConvertFrom-StringData
PS C:\> $Hash
Name     Value
----     -----
Msg3     The specified variable does not exist.
Msg2     Credentials are required for this command.
Msg1     The string parameter is required.

W tym przykładzie pokazano, że za pomocą operatora potoku (|) można wysłać ciąg do ConvertFrom-StringData.

Pierwsze polecenie zapisuje tutaj-ciąg w zmiennej $Here. Drugie polecenie używa operatora potoku (|) do wysyłania zmiennej $Here do ConvertFrom-StringData. Polecenie zapisuje wynik w zmiennej $Hash.

Ostatnie polecenie wyświetla zawartość zmiennej $Hash.

Przykład 7. Używanie znaków ucieczki w celu dodania nowych wierszy i znaków zwracanych

PS C:\> ConvertFrom-StringData @"
Vincentio = Heaven doth with us as we with torches do,\nNot light them for themselves; for if our virtues\nDid not go forth of us, 'twere all alike\nAs if we had them not.
Angelo = Let there be some more test made of my metal,\nBefore so noble and so great a figure\nBe stamp'd upon it.
"@ | Format-List
Name  : Angelo

Value : Let there be some more test made of my metal,
        Before so noble and so great a figure
        Be stamp'd upon it.

Name  : Vincentio
Value : Heaven doth with us as we with torches do,
        Not light them for themselves; for if our virtues
        Did not go forth of us, 'twere all alike
        As if we had them not.

W tym przykładzie pokazano użycie znaków ucieczki do tworzenia nowych wierszy i zwracania znaków w ConvertFrom-StringData. W tym przykładzie sekwencja ucieczki \n służy do tworzenia nowych wierszy w bloku tekstu (wartości w wynikowej tabeli skrótów), która jest skojarzona z nazwą lub elementem (nazwa, w wynikowej tabeli skrótów).

Przykład 8. Użyj znaku ucieczki ukośnika odwrotnego, aby poprawnie renderować ścieżkę pliku

PS C:\> ConvertFrom-StringData "Message=Look in c:\\Windows\\System32"
Name                           Value
----                           -----
Message                        Look in c:\Windows\System32

W tym przykładzie pokazano, jak używać znaku ucieczki ukośnika odwrotnego w danych ciągu, aby umożliwić poprawne renderowanie ścieżki pliku w wynikowej tabeli ConvertFrom-StringData skrótu. Podwójny ukośnik odwrotny gwarantuje, że znaki ukośnika odwrotnego literału są poprawnie renderowane w danych wyjściowych tabeli skrótów.

Parametry

-StringData

Określa ciąg, który ma zostać przekonwertowany. Tego parametru lub potoku można użyć do ConvertFrom-StringData. Nazwa parametru jest opcjonalna.

Wartość tego parametru musi być ciągiem, który jest ujęta w pojedynczy cudzysłów, ciąg, który jest ujęta w podwójny cudzysłów, lub tutaj ciąg zawierający co najmniej jedną parę klucz/wartość. Każda para klucz/wartość musi znajdować się w osobnym wierszu lub każda para musi być oddzielona znakami nowego wiersza ('n).

Komentarze można uwzględnić w ciągu, ale komentarze nie mogą znajdować się w tym samym wierszu co para klucz/wartość. Komentarze nie są uwzględniane w tabeli skrótów.

Tutaj ciąg jest ciągiem składającym się z co najmniej jednego wiersza, w którym znaki cudzysłowu są interpretowane dosłownie. Aby uzyskać więcej informacji, zobacz about_Quoting_Rules.

Typ:String
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

String

Możesz przekazać ciąg zawierający parę klucz/wartość, aby ConvertFrom-StringData.

Dane wyjściowe

Hashtable

To polecenie cmdlet zwraca tabelę skrótów tworzoną na podstawie par klucz/wartość.

Uwagi

  • Tutaj ciąg jest ciągiem składającym się z co najmniej jednego wiersza, w którym znaki cudzysłowu są interpretowane dosłownie.

    To polecenie cmdlet może być przydatne w skryptach, które wyświetlają komunikaty użytkowników w wielu językach mówionych. Tabele skrótów w stylu słownika umożliwiają odizolowanie ciągów tekstowych od kodu, takiego jak pliki zasobów, oraz formatowanie ciągów tekstowych do użycia w narzędziach tłumaczenia.