Converte una stringa che contiene una o più coppie chiave/valore in una tabella hash.
Sintassi
ConvertFrom-StringData [-StringData] <string> [<CommonParameters>]
Descrizione
Il cmdlet ConvertFrom-StringData consente di convertire una stringa che contiene una o più coppie chiave/valore in una tabella hash. Poiché ciascuna coppia chiave/valore deve trovarsi su una riga separata, le stringhe here sono spesso utilizzate come formato di input.
ConvertFrom-StringData è considerato un cmdlet sicuro che può essere utilizzato nella sezione DATA di uno script o una funzione. Quando si utilizza una sezione DATA, il contenuto della stringa deve attenersi alle regole di tale sezione. Per ulteriori informazioni, vedere about_Data_Sections.
Parametri
-StringData <string>
Specifica la stringa da convertire. È possibile utilizzare questo parametro o reindirizzare una stringa a ConvertFrom-StringData. Il nome del parametro è facoltativo.
Il valore di questo parametro deve essere una stringa racchiusa tra virgolette singole (stringa tra virgolette singole), una stringa racchiusa tra virgolette doppie (stringa tra virgolette doppie) o una stringa here che contiene una o più coppie chiave/valore. Ciascuna coppia chiave/valore deve trovarsi su una riga separata o essere separata da caratteri di avanzamento riga (`n).
La stringa può contenere commenti, purché non si trovino sulla stessa riga di una coppia chiave/valore. I commenti non vengono inclusi nella tabella hash.
Una stringa here è composta da una o più righe sulle quali le virgolette sono interpretate letteralmente. Per ulteriori informazioni, vedere about_Quoting_Rules.
Obbligatorio? |
true |
Posizione? |
1 |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByValue) |
Accettare caratteri jolly? |
false |
<CommonParameters>
Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.
Input e output
Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.
Input |
System.String È possibile reindirizzare una stringa che contiene una coppia chiave/valore a ConvertFrom-StringData. |
Output |
System.Collections.Hashtable ConvertFrom-StringData restituisce una tabella hash creata dalle coppie chiave/valore. |
Note
Una stringa here è composta da una o più righe sulle quali le virgolette sono interpretate letteralmente. Per ulteriori informazioni, vedere about_Quoting_Rules.
ConvertFrom-StringData può essere utile negli script che visualizzano messaggi utente in più lingue. È possibile utilizzare le tabelle hash di tipo dizionario per isolare le stringhe di testo dal codice, ad esempio in file di risorse, quindi formattare tali stringhe per utilizzarle negli strumenti di traduzione.
Esempio 1
C:\PS>$here = @' Msg1 = The string parameter is required. Msg2 = Credentials are required for this command. Msg3 = The specified variable does not exist. '@ C:\PS> 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. Descrizione ----------- Con questi comandi una stringa here tra virgolette singole costituita da messaggi utente viene convertita in una tabella hash. In una stringa racchiusa tra virgolette singole, i valori non sono sostituti di variabili e le espressioni non vengono valutate. Con il primo comando una stringa here viene creata e salvata nella variabile $here. Nel secondo comando viene utilizzato il cmdlet ConvertFrom-StringData per convertire la stringa here nella variabile $here in una tabella hash.
Esempio 2
C:\PS>$p = @" ISE = Windows PowerShell Integrated Scripting Environment "@ C:\PS> $p | get-member TypeName: System.String Name MemberType Definition ---- ---------- ---------- Clone Method System.Object Clone() ... C:\PS> $hash = convertfrom-stringdata -stringdata $p C:\PS> $hash | get-member TypeName: System.Collections.Hashtable Name MemberType Definition ---- ---------- ---------- Add Method System.Void Add(Object key, Object ... Descrizione ----------- Questi comandi dimostrano che ConvertFrom-StringData converte realmente una stringa here in una tabella hash. Con il primo comando viene creata una stringa here racchiusa tra virgolette doppie che include una coppia chiave/valore, quindi tale stringa viene salvata nella variabile $p. Nel secondo comando viene utilizzato un operatore pipeline (|) per inviare la variabile $p al cmdlet Get-Member. Il risultato mostra che $p è una stringa (System.String). Nel terzo comando viene utilizzato il cmdlet ConvertFrom-StringData per convertire la stringa here in $p in una tabella hash. Il risultato viene archiviato nella variabile $hash. Nel comando finale viene utilizzato un operatore pipeline (|) per inviare la variabile $hash al cmdlet Get-Member. Il risultato mostra che il contenuto della variabile $hash è una tabella hash (System.Collections.Hashtable).
Esempio 3
C:\PS>convertfrom-stringdata -stringdata @' Name = Disks.ps1 # Category is optional. Category = Storage Cost = Free '@ Name Value ---- ----- Cost Free Category Storage Name Disks.ps1 Descrizione ----------- Con questo comando una stringa here racchiusa tra virgolette singole che contiene più coppie chiave/valore viene convertita in una tabella hash. In questo comando, il valore del parametro StringData è una stringa here, anziché una variabile che contiene una stringa here. Entrambi i formati sono validi. La stringa here include un commento su una delle stringhe. I commenti sono validi nelle stringhe, purché si trovino su una riga diversa rispetto a una coppia chiave/valore.
Esempio 4
C:\PS>$a = convertfrom-stringdata -stringdata "Top = Red `n Bottom = Blue" C:\PS> "Top = " + $a.Top Top = Red C:\PS> "Bottom = " + $a.Bottom Bottom = Blue Descrizione ----------- In questo esempio una stringa regolare racchiusa tra virgolette doppie (non una stringa here) viene convertita in una tabella hash e salvata nella variabile $a. Per soddisfare la condizione secondo cui ciascuna coppia chiave/valore deve trovarsi su una riga separata, viene utilizzato il carattere di avanzamento riga (`n) di Windows PowerShell per separare le coppie. Il risultato è una tabella hash dell'input. I comandi rimanenti consentono di visualizzare l'output.
Esempio 5
C:\PS>$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. '@ } C:\PS> $TextMsgs.Text001 The $Notebook variable contains the name of the user's system notebook. C:\PS> $TextMsgs.Text002 The $MyNotebook variable contains the name of the user's private notebook. Descrizione ----------- In questo esempio viene illustrato un comando ConvertFrom-StringData utilizzato nella sezione DATA di uno script. Le istruzioni sotto la sezione DATA visualizzano il testo all'utente. Poiché il testo include nomi di variabili, è necessario racchiuderlo in una stringa tra virgolette singole in modo che le variabili vengano interpretate in modo letterale e non vengano espanse. Le variabili non sono consentite nella sezione DATA.
Esempio 6
C:\PS>$here = @' Msg1 = The string parameter is required. Msg2 = Credentials are required for this command. Msg3 = The specified variable does not exist. '@ C:\PS> $hash = $here | convertfrom-stringdata C:\PS> $hash Name Value ---- ----- Msg3 The specified variable does not exist. Msg2 Credentials are required for this command. Msg1 The string parameter is required. Descrizione ----------- In questo esempio viene illustrato che è possibile utilizzare un operatore pipeline (|) per inviare una stringa a ConvertFrom-StringData. Con il primo comando la stringa here viene salvata nella variabile $here. Nel secondo comando viene utilizzato un operatore pipeline (|) per inviare la variabile $here a ConvertFrom-StringData. Il risultato viene salvato nella variabile $hash. Con il comando finale viene visualizzato il contenuto della variabile $hash.
Vedere anche