Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Breve descrizione
Vengono spiegate le sezioni data, che isolano le stringhe di testo e altri dati di sola lettura dalla logica degli script.
Descrizione lunga
Gli script progettati per PowerShell possono avere una o più sezioni data contenenti solo dati. È possibile includere una o più sezioni data in qualsiasi script, funzione o funzione avanzata. Il contenuto della sezione data è 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 è possibile usare la sezione data per supportare l'internazionalizzazione degli script. È possibile usare le sezioni data per semplificare l'isolamento, l'individuazione e l'elaborazione di stringhe che possono essere tradotte in altre lingue.
La sezione data è stata aggiunta nella funzionalità di PowerShell 2.0.
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
-matchistruzioni
if,elseeelseifLe variabili automatiche seguenti:
$PSCulture,$PSUICulture$true,$false, e$nullCommenti
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" } @' <p> Hello, World </p> '@Cmdlet consentiti in una
datasezione per impostazione predefinita. Per impostazione predefinita, è consentito solo ilConvertFrom-StringDatacmdlet .Cmdlet consentiti in una sezione
datausando il parametro-SupportedCommand.
Quando si utilizza il cmdlet ConvertFrom-StringData in una sezione data, è possibile racchiudere le coppie chiave-valore in stringhe tra virgolette singole o doppie, oppure in qui-stringhe tra virgolette singole o doppie. Tuttavia, le stringhe che contengono variabili e sottoespressioni devono essere racchiuse in 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 parametro SupportedCommand 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 data 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 data 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 data
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 data seguente contiene un comando ConvertFrom-StringData che converte la stringa here in una tabella hash. La tabella hash viene assegnata alla $TextMsgs variabile .
La variabile $TextMsgs non fa parte della sezione data.
$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 data. 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
}