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