about_Data_Sections
Descrizione breve
Vengono illustrate le sezioni Dati, che isolano le stringhe di testo e altri dati di sola lettura dalla logica di script.
Descrizione lunga
Gli script progettati per PowerShell possono avere una o più sezioni Dati che contengono solo dati. È possibile includere una o più sezioni Dati in qualsiasi script, funzione o funzione avanzata. Il contenuto della sezione Dati è limitato a un subset specificato del linguaggio di scripting di PowerShell.
La separazione dei dati dalla logica del codice semplifica l'identificazione e la gestione sia della logica che dei dati. Consente di avere file di risorse stringa separati per il testo, ad esempio messaggi di errore e stringhe della Guida. Isola anche la logica del codice, che facilita i test di sicurezza e convalida.
In PowerShell la sezione Dati viene usata per supportare l'internazionalizzazione degli script. È possibile usare le sezioni Dati per semplificare l'isolamento, l'individuazione e l'elaborazione delle stringhe che verranno tradotte in molte lingue dell'interfaccia utente.
La sezione Dati è una funzionalità di PowerShell 2.0. Gli script con le sezioni Dati non verranno eseguiti in PowerShell 1.0 senza revisione.
Sintassi
La sintassi per una sezione Data è la seguente:
DATA [<variable-name>] [-supportedCommand <cmdlet-name>] {
<Permitted content>
}
La parola chiave Data è obbligatoria. Non fa distinzione tra maiuscole e minuscole. Il contenuto consentito è limitato agli elementi seguenti:
Tutti gli operatori di PowerShell, ad eccezione di
-match
istruzioni
If
,Else
eElseIf
Le variabili automatiche seguenti:
$PsCulture
,$PsUICulture
$True
,$False
, e$Null
Commenti
Pipeline
Istruzioni separate da punto e virgola (
;
)Valori letterali, ad esempio i seguenti:
a 1 1,2,3 "PowerShell 2.0" @( "red", "green", "blue" ) @{ a = 0x1; b = "great"; c ="script" } [XML] @' <p> Hello, World </p> '@
Cmdlet consentiti in una sezione Dati. Per impostazione predefinita, è consentito solo il
ConvertFrom-StringData
cmdlet .Cmdlet consentiti in una sezione Dati usando il
-SupportedCommand
parametro .
Quando si usa il ConvertFrom-StringData
cmdlet in una sezione Data, è possibile racchiudere le coppie chiave-valore in stringhe racchiuse tra virgolette singole o doppie o tra virgolette singole o racchiuse tra virgolette doppie. Tuttavia, le stringhe che contengono variabili e sottoespressioni devono essere racchiuse tra stringhe tra virgolette singole o in stringhe con virgolette singole in modo che le variabili non vengano espanse e che le sottoespressioni non siano eseguibili.
-SupportedCommand
Il -SupportedCommand
parametro consente di indicare che un cmdlet o una funzione genera solo dati. È progettato per consentire agli utenti di includere cmdlet e funzioni in una sezione di dati scritta o testata.
Il valore di -SupportedCommand
è un elenco delimitato da virgole di uno o più nomi di cmdlet o funzioni.
Ad esempio, la sezione dati seguente include un cmdlet scritto dall'utente, Format-Xml
, che formatta i dati in un file XML:
DATA -supportedCommand Format-Xml
{
Format-Xml -Strings string1, string2, string3
}
Uso di una sezione Dati
Per usare il contenuto di una sezione Data, assegnarlo a una variabile e usare la notazione delle variabili per accedere al contenuto.
Ad esempio, la sezione dei dati seguente contiene un ConvertFrom-StringData
comando che converte la stringa here in una tabella hash. La tabella hash viene assegnata alla $TextMsgs
variabile .
La $TextMsgs
variabile non fa parte della sezione dati.
$TextMsgs = DATA {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Per accedere alle chiavi e ai valori nella tabella hash in $TextMsgs
, usare i comandi seguenti.
$TextMsgs.Text001
$TextMsgs.Text002
In alternativa, è possibile inserire il nome della variabile nella definizione della sezione Dati. Ad esempio:
DATA TextMsgs {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
$TextMsgs
Il risultato è lo stesso dell'esempio precedente.
Name Value
---- -----
Text001 Windows 7
Text002 Windows Server 2008 R2
Esempi
Stringhe di dati semplici.
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."
}
Stringhe che includono variabili consentite.
DATA {
if ($null) {
"To get help for this cmdlet, type get-help new-dictionary."
}
}
Stringa con virgolette singole che usa il ConvertFrom-StringData
cmdlet :
DATA {
ConvertFrom-StringData -stringdata @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Stringa qui racchiusa tra virgolette doppie che usa il ConvertFrom-StringData
cmdlet :
DATA {
ConvertFrom-StringData -stringdata @"
Msg1 = To start, press any key.
Msg2 = To exit, type "quit".
"@
}
Sezione dati che include un cmdlet scritto dall'utente che genera dati:
DATA -supportedCommand Format-XML {
Format-Xml -strings string1, string2, string3
}