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




Argomenti della Guida