Set-Variable
Imposta il valore di una variabile. Crea la variabile se non ne esiste una con il nome richiesto.
Sintassi
Set-Variable
[-Name] <String[]>
[[-Value] <Object>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Description <String>]
[-Option <ScopedItemOptions>]
[-Force]
[-Visibility <SessionStateEntryVisibility>]
[-PassThru]
[-Scope <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
Il Set-Variable
cmdlet assegna un valore a una variabile specificata o modifica il valore corrente. Se la variabile non esiste, il cmdlet la crea.
Esempio
Esempio 1: Impostare una variabile e ottenere il relativo valore
Questi comandi impostano il valore della $desc
variabile su A description
e quindi ottiene il valore della variabile.
Set-Variable -Name "desc" -Value "A description"
Get-Variable -Name "desc"
Name Value
---- -----
desc A description
Esempio 2: Impostare una variabile globale di sola lettura
In questo esempio viene creata una variabile globale di sola lettura che contiene tutti i processi nel sistema e quindi vengono visualizzate tutte le proprietà della variabile.
Set-Variable -Name "processes" -Value (Get-Process) -Option constant -Scope global -Description "All processes" -PassThru |
Format-List -Property *
Il comando usa il Set-Variable
cmdlet per creare la variabile. Usa il parametro PassThru per creare un oggetto che rappresenta la nuova variabile e usa l'operatore pipeline (|
) per passare l'oggetto al Format-List
cmdlet. Usa il parametro Property di Format-List
con un valore di tutti (*
) per visualizzare tutte le proprietà della variabile appena creata.
Il valore , (Get-Process)
, è racchiuso tra parentesi per assicurarsi che venga eseguito prima di essere archiviato nella variabile . In caso contrario, la variabile contiene le parole Get-Process
.
Esempio 3: Informazioni sulle variabili pubbliche e private
In questo esempio viene illustrato come modificare la visibilità di una variabile in Private
. Questa variabile può essere letta e modificata mediante script con le autorizzazioni necessarie, ma non è visibile all'utente.
New-Variable -Name "counter" -Visibility Public -Value 26
$Counter
26
Get-Variable c*
Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}
Counter 26
Set-Variable -Name "counter" -Visibility Private
Get-Variable c*
Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}
$counter
"Cannot access the variable '$counter' because it is a private variable"
.\use-counter.ps1
#Commands completed successfully.
Questo comando mostra come modificare la visibilità di una variabile in Privato. Questa variabile può essere letta e modificata mediante script con le autorizzazioni necessarie, ma non è visibile all'utente.
Parametri
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Description
Specifica la descrizione della variabile.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Exclude
Specifica una matrice di elementi che questo cmdlet esclude dall'operazione. Il valore di questo parametro qualifica il parametro Path . Immettere un elemento o un modello di percorso, ad esempio *.txt
.
I caratteri jolly sono consentiti.
Tipo: | String[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | True |
-Force
Consente di creare una variabile con lo stesso nome di una variabile di sola lettura esistente o di modificare il valore di una variabile di sola lettura.
Per impostazione predefinita, è possibile sovrascrivere una variabile, a meno che la variabile non abbia un valore di opzione pari ReadOnly
a o Constant
. Per altre informazioni, vedere il parametro Option .
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Include
Specifica una matrice di elementi inclusi nel cmdlet nell'operazione. Il valore di questo parametro qualifica il parametro Name . Immettere un nome o un modello di nome, ad esempio c*
. I caratteri jolly sono consentiti.
Tipo: | String[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | True |
-Name
Specifica il nome della variabile.
Tipo: | String[] |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Option
Specifica il valore della proprietà Options della variabile.
I valori validi sono:
None
: non imposta alcuna opzione. (None
è il valore predefinito.ReadOnly
: può essere eliminato. Non può essere modificato, ad eccezione dell'utilizzo del parametro Force.Constant
: non può essere eliminato o modificato.Constant
è valido solo quando si crea una variabile. Non è possibile modificare le opzioni di una variabile esistente inConstant
.Private
: la variabile è disponibile solo nell'ambito corrente.AllScope
: la variabile viene copiata in tutti i nuovi ambiti creati.
Questi valori sono definiti come enumerazione basata su flag. È possibile combinare più valori per impostare più flag usando questo parametro. I valori possono essere passati al parametro Option come matrice di valori o come stringa delimitata da virgole di tali valori. Il cmdlet combina i valori usando un'operazione binary-OR. Il passaggio di valori come matrice è l'opzione più semplice e consente anche di usare il completamento tramite tabulazione sui valori.
Tipo: | ScopedItemOptions |
Valori accettati: | None, ReadOnly, Constant, Private, AllScope, Unspecified |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-PassThru
Restituisce un oggetto che rappresenta la nuova variabile. Per impostazione predefinita, il cmdlet non genera alcun output.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Scope
Specifica l'ambito della variabile. I valori accettabili per questo parametro sono:
Global
Local
Script
Private
- Numero relativo all'ambito corrente (da 0 al numero di ambiti, dove 0 è l'ambito corrente e 1 è il relativo elemento padre).
Local
è l'impostazione predefinita.
Per altre informazioni, vedere about_Scopes.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | Local |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Value
Specifica il valore della variabile.
Tipo: | Object |
Posizione: | 1 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Visibility
Determina se la variabile è visibile all'esterno della sessione in cui è stata creata. Questo parametro è progettato per l'uso negli script e nei comandi che verranno forniti ad altri utenti.
I valori validi sono:
Public
: la variabile è visibile. (Public
è il valore predefinito.Private
: la variabile non è visibile.
Quando una variabile è privata, non viene visualizzata negli elenchi di variabili, ad esempio quelle restituite da Get-Variable
o nelle visualizzazioni dell'unità Variabile: . I comandi per leggere o modificare il valore di una variabile privata restituiscono un errore. Tuttavia, l'utente può eseguire comandi che usano una variabile privata se i comandi sono stati scritti nella sessione in cui è stata definita la variabile.
Tipo: | SessionStateEntryVisibility |
Valori accettati: | Public, Private |
Posizione: | Named |
Valore predefinito: | Public |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.
Tipo: | SwitchParameter |
Alias: | wi |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe un oggetto che rappresenta il valore della variabile a questo cmdlet.
Output
None
Per impostazione predefinita, questo cmdlet non restituisce alcun output.
Quando si utilizza il parametro PassThru , questo cmdlet restituisce un oggetto PSVariable che rappresenta la variabile nuova o modificata.
Note
PowerShell include gli alias seguenti per Set-Variable
:
- Tutte le piattaforme:
set
sv