Nome provider
Variable
Unità
Variable:
Descrizione breve
Consente di accedere alle variabili di Windows PowerShell e ai relativi valori.
Descrizione dettagliata
Il provider Variable di Windows PowerShell consente di ottenere, aggiungere, modificare, cancellare ed eliminare variabili di Windows PowerShell nella console corrente.
Il provider Variable di Windows PowerShell supporta le variabili create in Windows PowerShell, incluse le variabili automatiche, le variabili di preferenza e quelle create dall'utente.
Il provider Variable è uno spazio dei nomi flat che contiene solo gli oggetti variabile. Le variabili non contengono elementi figlio.
La maggior parte delle variabili rappresenta un'istanza della classe System.Management.Automation.PSVariable. Vi sono tuttavia alcune varianti. La variabile "?", ad esempio, è un membro della classe QuestionMarkVariable, mentre la variabile "MaximumVariableCount" è un membro della classe SessionStateCapacityVariable.
Il provider Variable espone il relativo archivio dati nell'unità Variable:. Per utilizzare le variabili, è possibile modificare il percorso dell'unità Variable: ("set-location variable:") oppure utilizzarle da qualsiasi altra unità di Windows PowerShell. Per fare riferimento a una variabile da un altro percorso, utilizzare il nome dell'unità (Variable:) nel percorso.
In Windows PowerShell è incluso un set di cmdlet appositamente progettati per visualizzare e modificare le variabili:
-- Get-Variable
-- New-Variable
-- Set-Variable
-- Remove-Variable
-- Clear-Variable
Quando si utilizzano questi cmdlet, non è necessario specificare l'unità Variable: nel nome.
Il provider Variable supporta tutti i cmdlet i cui nomi contengono il sostantivo Item (i cmdlet Item), ad eccezione di Invoke-Item. Supporta inoltre i cmdlet Get-Content e Set-Content. Il provider, tuttavia, non supporta i cmdlet i cui nomi contengono il sostantivo ItemProperty (i cmdlet ItemProperty), né il parametro Filter in alcun cmdlet.
È inoltre possibile utilizzare il parser di espressioni di Windows PowerShell per creare, visualizzare e modificare i valori delle variabili senza utilizzare i cmdlet. Quando si utilizzano le variabili direttamente, aggiungere il segno di dollaro ($) per identificare il nome come variabile e l'operatore di assegnazione (=) per definirne e modificarne il valore. Ad esempio, "$p = Get-Process" crea la variabile "p" e archivia in essa i risultati di un comando "Get-Process".
Tutte le modifiche apportate alle variabili influiscono solo sulla sessione corrente. Per salvare le modifiche, aggiungerle al profilo di Windows PowerShell oppure utilizzare Export-Console per salvare la console corrente.
Esempi
Accesso all'unità Variable:
-------------------------- ESEMPIO 1 --------------------------
In questo comando viene utilizzata l'unità Variable: come percorso. È possibile utilizzare questo comando da qualsiasi unità in Windows PowerShell. Per tornare a un'unità del file system, digitare il nome dell'unità. Digitare, ad esempio, set-location c:".
set-location variable:
Visualizzazione del valore delle variabili
-------------------------- ESEMPIO 1 --------------------------
Con questo comando viene ottenuto l'elenco di tutte le variabili e dei relativi valori nella sessione corrente. È possibile utilizzare questo comando da qualsiasi unità di Windows PowerShell.
get-childitem -path variable:
-------------------------- ESEMPIO 2 --------------------------
Con questo comando si ottengono le variabili il cui nome inizia con "max". È possibile utilizzare questo comando da qualsiasi unità di Windows PowerShell.
get-childitem -path variable:max*
Se ci si trova nell'unità Variable:, è possibile omettere il nome di tale unità dal percorso.
-------------------------- ESEMPIO 3 --------------------------
Con questo comando viene ottenuto il valore della variabile WhatIfPreference digitandone il nome nella riga di comando.
Il nome della variabile è preceduto da un segno di dollaro ($), a indicare che si tratta di una variabile. Il nome dell'unità Variable: non è specificato.
$WhatIfPreference
-------------------------- ESEMPIO 4 --------------------------
Con questo comando viene utilizzato il parametro LiteralPath di Get-ChildItem per ottenere il valore della variabile "?" dall'unità Variabile:. Get-ChildItem non risolve i caratteri jolly eventualmente presenti nei valori del parametro LiteralPath.
get-childitem -literalpath ?
Per visualizzare il valore di una variabile con un carattere speciale senza un cmdlet, digitare un segno di dollaro ($) seguito dal nome della variabile. Ad esempio, per visualizzare il valore della variabile "?", digitare "$?".
-------------------------- ESEMPIO 5 --------------------------
Con questo comando si ottengono le variabili la cui proprietà Options ha valore "ReadOnly" o "Constant".
get-childitem -path variable: | where-object {$_.options -match "Constant" -or $_.options -match "ReadOnly"} | format-list -property name, value, options
Creazione di una nuova variabile
-------------------------- ESEMPIO 1 --------------------------
Con questo comando viene creata la variabile "services" in cui vengono archiviati i risultati di un comando Get-Service. Poiché il percorso corrente si trova nell'unità Variable:, il valore del parametro Path è un punto (.) che rappresenta il percorso corrente.
Le parentesi tra cui è racchiuso il comando Get-Service garantiscono che il comando venga eseguito prima della creazione della variabile. Senza le parentesi, il valore della nuova variabile sarebbe una stringa "Get-Service".
new-item -path . -name services -value (Get-Service)
Se non ci si trova nell'unità variable:, includere il nome di tale unità nel percorso.
-------------------------- ESEMPIO 2 --------------------------
Con questo comando viene creata una variabile "services", in cui viene archiviato il risultato di un comando Get-Service.
Nel comando viene utilizzato un segno di dollaro ($) per indicare che si tratta di una variabile e l'operatore di assegnazione (=) per assegnare il risultato del comando Get-Service alla nuova variabile creata.
$services = Get-Service
Per creare una variabile priva di valore, omettere l'operatore di assegnazione.
Visualizzazione delle proprietà e dei metodi delle variabili
-------------------------- ESEMPIO 1 --------------------------
In questo comando viene utilizzato il cmdlet Get-Item per ottenere tutte le variabili. L'operatore pipeline (|) invia i risultati al cmdlet Get-Member, che visualizza i metodi e le proprietà dell'oggetto.
get-item -path variable:* | get-member
Quando si reindirizza una raccolta di oggetti, ad esempio una raccolta di variabili nell'unità Variable:, a Get-Member, con Get-Member viene valutato ogni oggetto nella raccolta separatamente e vengono quindi restituite le informazioni su ciascuno dei tipi di oggetto trovati. Per ottenere informazioni sulla raccolta di oggetti presenti nell'unità Variable:, utilizzare il parametro InputObject di Get-Member, ad esempio, "get-member -inputobject (get-item variable:*)". Quando si utilizza InputObject, con Get-Member viene valutata la raccolta, non gli oggetti in essa contenuti.
-------------------------- ESEMPIO 2 --------------------------
Tramite questo comando vengono elencati i valori delle proprietà della variabile "home". Viene utilizzato il cmdlet Get-Item per ottenere un oggetto che rappresenta la variabile "home". I risultati vengono inviati al comando Format-List dall'operatore pipeline (|). Con il comando Format-List viene utilizzato il parametro Property con carattere jolly (*) per formattare e visualizzare i valori di tutte le proprietà della variabile "home".
get-item variable:home | format-list -property *
Modifica delle proprietà di una variabile
-------------------------- ESEMPIO 1 --------------------------
In questo comando viene utilizzato il cmdlet Rename-Item per modificare il nome della variabile "a" in "processes".
rename-item -path variable:a -newname processes
-------------------------- ESEMPIO 2 --------------------------
In questo comando viene utilizzato il cmdlet Set-Item per modificare il valore della variabile ErrorActionPreference in "Stop".
set-item -path variable:ErrorActionPreference -value Stop
-------------------------- ESEMPIO 3 --------------------------
Tramite questo comando viene modificato il valore della variabile ErrorActionPreference in "Stop".
Viene utilizzato un segno di dollaro ($) per indicare che si tratta di una variabile e l'operatore di assegnazione (=) per assegnare il valore.
$ErrorActionPreference = Stop
Copia di una variabile
-------------------------- ESEMPIO 1 --------------------------
In questo comando viene utilizzato il cmdlet Copy-Item per copiare la variabile "processes" in "old_processes". In questo modo, verrà creata una nuova variabile denominata "old_processes" che avrà lo stesso valore della variabile "processes".
copy-item -path variable:processes -destination variable:old_processes
Se il comando viene eseguito dall'unità Variable:, è possibile omettere il nome dell'unità dal valore del parametro Path.
-------------------------- ESEMPIO 2 --------------------------
Tramite questo comando viene copiata la variabile "processes" in "old_processes" senza utilizzare un cmdlet. Viene utilizzato il segno di dollaro ($) per indicare che si tratta di una variabile e l'operatore di assegnazione per assegnare il valore di $processes a old_processes.
$old_processes = $processes
Eliminazione di una variabile
-------------------------- ESEMPIO 1 --------------------------
Con questo comando viene eliminata la variabile "serv" dalla sessione corrente. È possibile utilizzare questo comando in qualsiasi unità di Windows PowerShell.
remove-variable -path variable:serv
-------------------------- ESEMPIO 2 --------------------------
Con questo comando vengono eliminate tutte le variabili dalla sessione corrente, ad eccezione di quelle la cui proprietà Options ha valore Constant. Se il parametro Force non è specificato, non verranno eliminate le variabili la cui proprietà Options ha valore ReadOnly.
remove-item variable:* -force
Impostazione del valore di una variabile su NULL
-------------------------- ESEMPIO 1 --------------------------
In questo comando viene utilizzato il cmdlet Clear-Item per modificare il valore della variabile "processes" in NULL.
clear-item -path variable:processes
-------------------------- ESEMPIO 2 --------------------------
Tramite questo comando viene cancellato il valore della variabile "processes" assegnando il valore Null alla variabile. Viene utilizzata la variabile automatica $null per rappresentare il valore NULL.
$processes = $null
Vedere anche