ARGOMENTO
about_Automatic_Variables
DESCRIZIONE BREVE
Descrive le variabili che archiviano informazioni sullo stato per
Windows PowerShell.
Queste variabili vengono create e gestite da Windows PowerShell.
DESCRIZIONE DETTAGLIATA
Di seguito viene presentato un elenco delle variabili automatiche
in Windows PowerShell:
$$
Contiene l'ultimo token dell'ultima riga ricevuta dalla sessione.
$?
Contiene lo stato di esecuzione dell'ultima operazione.
Contiene TRUE se l'ultima operazione ha avuto esito positivo e
FALSE se ha avuto esito negativo.
$^
Contiene il primo token dell'ultima riga ricevuta dalla sessione.
$_
Contiene l'oggetto corrente nell'oggetto pipeline. È possibile
utilizzare questa variabile nei comandi che eseguono un'azione
su ogni oggetto o sugli oggetti selezionati in una pipeline.
$Args
Contiene una matrice dei parametri non dichiarati e/o dei valori di
parametro passati a una funzione, a uno script o a un blocco di script.
Quando si crea una funzione, è possibile dichiarare i
parametri tramite la parola chiave param o aggiungendo un elenco di
parametri separati da virgole tra parentesi dopo il nome della funzione.
$ConsoleFileName
Contiene il percorso del file della console (con estensione psc1)
utilizzato più di recente nella sessione. Questa variabile viene
compilata quando si avvia Windows PowerShell con il parametro
PSConsoleFile o quando si utilizza il cmdlet Export-Console per
esportare i nomi degli snap-in in un file della console.
Quando si utilizza il cmdlet Export-Console senza parametri, viene
automaticamente aggiornato il file della console utilizzato più di
recente nella sessione. È possibile utilizzare questa variabile
automatica per determinare il file che verrà aggiornato.
$Error
Contiene una matrice di oggetti errore che rappresenta gli
errori più recenti. L'errore più recente è il primo oggetto
errore nella matrice ($Error[0]).
$Event
Contiene un oggetto PSEventArgs che rappresenta l’evento che viene elaborato. Questa variabile viene compilata solo all’interno del blocco Action di un comando di registrazione di eventi, ad esempio
Register-ObjectEvent. Il valore di questa variabile è lo stesso oggetto restituito dal cmdlet Get-Event. Pertanto, è possibile utilizzare le proprietà della variabile $Event, ad esempio $Event.TimeGenerated, in un blocco di script di Action.
$EventSubscriber
Contiene un oggetto PSEventSubscriber che rappresenta il sottoscrittore di eventi dell’evento che viene elaborato. Questa variabile viene compilata solo all’interno del blocco Action di un comando di registrazione di eventi. Il valore di questa variabile è lo stesso oggetto restituito dal cmdlet
Get-EventSubscriber.
$ExecutionContext
Contiene un oggetto EngineIntrinsics che rappresenta il contesto di
esecuzione dell'host di Windows PowerShell. È possibile utilizzare questa
variabile per trovare gli oggetti di esecuzione disponibili ai cmdlet.
$False
Contiene FALSE. È possibile utilizzare questa variabile per
rappresentare FALSE in comandi e script anziché utilizzare la
stringa "false". La stringa può essere interpretata come TRUE
se viene convertita in una stringa non vuota o in un valore intero
diverso da zero.
$ForEach
Contiene l'enumeratore di un ciclo ForEach-Object. È possibile
utilizzare le proprietà e i metodi di enumeratori sul valore della
variabile $ForEach. Questa variabile esiste solo mentre è in
esecuzione il ciclo For. Viene eliminata al completamento del ciclo.
$Home
Contiene il percorso completo della home directory
dell'utente. Questa variabile equivale alle variabili di ambiente
%homedrive%%homepath%, in genere C:\Documents and Settings\<utente>.
$Host
Contiene un oggetto che rappresenta l'applicazione host
corrente per Windows PowerShell. È possibile utilizzare questa
variabile per rappresentare l'host corrente nei comandi o per
visualizzare o modificare le proprietà dell'host, ad esempio
$Host.version, $Host.CurrentCulture o $host.ui.rawui.
setbackgroundcolor("Red").
$Input
Enumeratore che contiene l'input passato a una funzione. La
variabile $Input rileva la distinzione tra maiuscole e
minuscole ed è disponibile solo nelle funzioni e nei blocchi
di script. I blocchi di script rappresentano essenzialmente
funzioni non denominate. Nel blocco Process di una funzione,
la variabile $Input contiene l'oggetto attualmente presente nella
pipeline. Quando viene completato il blocco Process, il valore di
$Input è NULL. Se la funzione non dispone di un blocco Process, il
valore di $Input è disponibile per il blocco End e contiene tutto
l'input della funzione.
$LastExitCode
Contiene il codice di uscita dell'ultimo programma basato su
Windows che è stato eseguito.
$Matches
La variabile $Matches funziona con gli operatori -match e -not
match.
Quando si invia l'input scalare all'operatore -match o
-notmatch e viene rilevata una corrispondenza, viene
restituito un valore booleano e viene compilata la variabile
automatica $Matches con una tabella hash di qualsiasi valore
di stringa di cui era stata rilevata la corrispondenza. Per
ulteriori informazioni sull'operatore -match, vedere
about_comparison_operators.
$MyInvocation
Contiene un oggetto con informazioni sul comando corrente, ad
esempio uno script, una funzione o un blocco di script. È possibile
utilizzare le informazioni nell'oggetto, ad esempio il percorso e il
nome del file dello script ($myinvocation.mycommand.path) o il nome
di una funzione ($myinvocation.mycommand.name), per identificare il comando
corrente. È particolarmente utile per l'individuazione del nome dello
script in esecuzione.
$NestedPromptLevel
Contiene il livello del prompt corrente. Il valore 0 indica il
livello del prompt originale. Il valore viene incrementato
quando si immette un livello nidificato e diminuito quando viene
terminato.
Ad esempio, Windows PowerShell presenta un prompt dei comandi
nidificato quando si utilizza il metodo $Host.EnterNestedPrompt
. Windows PowerShell presenta inoltre un prompt dei comandi
nidificato quando si raggiunge un punto di interruzione nel
debugger di Windows PowerShell.
Quando si immette un prompt nidificato, Windows PowerShell
sospende il comando corrente, salva il contesto di esecuzione e
incrementa il valore della variabile $NestedPromptLevel. Per creare
ulteriori prompt dei comandi nidificati (fino a 128 livelli) o
tornare al prompt dei comandi originale, completare il comando o
digitare "exit".
La variabile $NestedPromptLevel consente di tenere traccia del
livello del prompt. È possibile creare un prompt dei comandi
di Windows PowerShell alternativo che includa questo valore in
modo che sia sempre visibile.
$NULL
Contiene un valore NULL o vuoto. È possibile utilizzare questa
variabile per rappresentare NULL in comandi e script, anziché
utilizzare la stringa "NULL". La stringa può essere
interpretata come TRUE se viene convertita in una stringa non
vuota o in un valore intero diverso da zero.
$PID
Contiene l'identificatore del processo (PID) che ospita la
sessione di Windows PowerShell corrente.
$Profile
Contiene il percorso completo del profilo di Windows PowerShell per
l'utente corrente e l'applicazione host corrente. È possibile
utilizzare questa variabile per rappresentare il profilo nei comandi.
Ad esempio, è possibile utilizzarla in un comando per determinare se
è stato creato un profilo:
test-path $profile
In alternativa, è possibile utilizzarla in un comando per creare un
profilo:
new-item -type file -path $pshome -force
È inoltre possibile utilizzarla in un comando per aprire il
profilo in Blocco note:
notepad $profile
$PSBoundParameters
Contiene un dizionario dei parametri attivi e dei relativi valori
correnti. Questa variabile dispone di un valore solo in un ambito in
cui vengono dichiarati i parametri, ad esempio uno script o una
funzione. È possibile utilizzarla per visualizzare o modificare
i valori correnti dei parametri o per passare i valori dei parametri
a un altro script o funzione.
Ad esempio:
function test {
param($a, $b)
# Visualizzare i parametri nel formato del dizionario.
$psboundparameters
# Chiamare la funzione Test1 con $a e $b.
test1 @psboundparameters
}
$PsCmdlet
Contiene un oggetto che rappresenta il cmdlet o la funzione
avanzata in esecuzione.
È possibile utilizzare le proprietà e i metodi dell'oggetto
nel cmdlet o nel codice della funzione per rispondere alle
condizioni di utilizzo. Ad esempio, la proprietà ParameterSetName
contiene il nome del set di parametri utilizzato e il metodo
ShouldProcess aggiunge dinamicamente i parametri WhatIf e Confirm al
cmdlet.
Per ulteriori informazioni sulla variabile automatica
$PSCmdlet, vedere about_Functions_Advanced.
$PsCulture
Contiene il nome delle impostazioni cultura attualmente in uso nel
sistema operativo. Le impostazioni cultura determinano il formato di
visualizzazione di elementi quali numeri, valuta e date. Si tratta
del valore della proprietà System.Globalization.CultureInfo.CurrentCul
ture.Name del sistema. Per ottenere l'oggetto System.Globalization.Cul
tureInfo del sistema, utilizzare il cmdlet Get-Culture.
$PSDebugContext
Durante il debug, questa variabile contiene le informazioni
relative all'ambiente di debug. In caso contrario, contiene un
valore NULL. Di conseguenza, è possibile utilizzarla per
indicare se il debugger dispone del controllo. Se compilata,
contiene un oggetto PsDebugContext che dispone delle proprietà
Breakpoints e InvocationInfo. La proprietà InvocationInfo dispone di
diverse proprietà utili, inclusa la proprietà Location. Questa
proprietà indica il percorso dello script sottoposto a debug.
$PsHome
Contiene il percorso completo della directory di installazione per
Windows PowerShell, in genere %windir%\System32\WindowsPowerShell\v1.0. È
possibile utilizzare questa variabile nei percorsi dei file di Windows
PowerShell. Ad esempio, il comando seguente cerca la parola
"variable" negli argomenti concettuali della Guida:
select-string -pattern variable -path $pshome\*.txt
$PSScriptRoot
Contiene la directory da cui viene eseguito il modulo di script.
Questa variabile consente agli script di utilizzare il percorso del
modulo per accedere ad altre risorse.
$PsUICulture
Contiene il nome delle impostazioni cultura dell'interfaccia utente
attualmente in uso nel sistema operativo. Le impostazioni cultura
dell'interfaccia utente determinano quali stringhe di testo vengono
utilizzate per gli elementi dell'interfaccia utente, ad esempio menu
e messaggi. Si tratta del valore della
proprietà System.Globalization.CultureInfo.CurrentUICulture.Nam
e del sistema. Per ottenere l'oggetto System.Globalization.Cult
ureInfo del sistema, utilizzare il cmdlet Get-UICulture.
$PsVersionTable
Contiene una tabella hash di sola lettura in cui sono
visualizzati i dettagli sulla versione di Windows PowerShell in
esecuzione nella sessione corrente.
Nella tabella sono inclusi gli elementi seguenti:
CLRVersion: versione di Common Language Runtime (CLR)
BuildVersion: numero della build della versione
corrente
PSVersion: numero di versione di Windows
PowerShell
WSManStackVersion: numero di versione dello stack di
WS-Management
PSCompatibleVersions: versioni di Windows PowerShell compatibili con
la versione corrente
SerializationVersion: versione del metodo di serializzazione
PSRemotingProtocolVersion
versione del protocollo di
gestione remota di Windows PowerShell
$Pwd
Contiene un oggetto percorso che rappresenta il percorso
completo della directory corrente.
$Sender
Contiene l’oggetto generato dall'evento. Questa variabile viene compilata solo
all’interno del blocco Action di un comando di registrazione di eventi.
Il valore di questa variabile può essere trovato anche nella proprietà Sender dell'oggetto
PSEventArgs (System.Management.Automation.PSEventArgs) restituito da Get-Event.
$ShellID
Contiene l'identificatore della shell corrente.
$SourceArgs
Contiene oggetti che rappresentano gli argomenti di evento dell’evento che viene elaborato.
Questa variabile viene compilata solo all’interno del blocco Action di un comando di
registrazione di eventi. Il valore di questa variabile può essere trovato anche nella proprietà
SourceArgs dell'oggetto PSEventArgs (System.Management.Automation.PSEventArgs) restituito da Get-Event.
$SourceEventArgs
Contiene un oggetto che rappresenta il primo argomento dell’evento derivante da EventArgs
dell’evento che viene elaborato. Questa variabile viene compilata solo all’interno del
blocco Action di un comando di registrazione di eventi. Il valore di questa variabile può
essere trovato anche nella proprietà SourceArgs dell'oggetto
PSEventArgs (System.Management.Automation.PSEventArgs) restituito da Get-Event.
$This
In un blocco di script che definisce una proprietà script o
un metodo script, la variabile $This fa riferimento
all'oggetto esteso.
$True
Contiene TRUE. È possibile utilizzare questa variabile per
rappresentare TRUE in comandi e script.
VEDERE ANCHE
about_Hash_Tables
about_Preference_Variables
about_Variables