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>] [-Description <string>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Option {<None> | <ReadOnly> | <Constant> | <Private> | <AllScope>}] [-PassThru] [-Scope <string>] [-Visibility {<Public> | <Private>}] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Set-Variable assegna un valore a una variabile specificata oppure modifica il valore corrente. Se la variabile non esiste, viene creata dal cmdlet.

Parametri

-Description <string>

Specifica la descrizione della variabile.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-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 disponga di un valore dell'opzione "ReadOnly" o "Constant". Per ulteriori informazioni, vedere il parametro Option.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Include <string[]>

Modifica unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Name. Immettere un nome o un modello di nome, ad esempio "c*". È consentito l'utilizzo di caratteri jolly.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Name <string[]>

Specifica il nome della variabile.

Obbligatorio?

true

Posizione?

1

Valore predefinito

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-Option <ScopedItemOptions>

Modifica il valore della proprietà Options della variabile. I valori validi sono:

-- None: non imposta alcuna opzione. "None" rappresenta il valore predefinito.

-- ReadOnly: non è possibile modificare le proprietà della variabile, a meno che non si utilizzi il parametro Force. È possibile utilizzare Remove-Variable per eliminare la variabile.

-- Constant: la variabile non può essere eliminata e non è possibile modificarne le proprietà. Il valore "Constant" è disponibile solo quando si crea un alias. Non è possibile modificare in "Constant" l'opzione di una variabile esistente.

-- Private: la variabile è disponibile solo nell'ambito specificato dal parametro Scope Viene ereditata da ambiti figlio.

--AllScope: la variabile viene copiata in qualsiasi nuovo ambito creato.

Per visualizzare la proprietà Options delle variabili, digitare "Get-Variable | Format-Table -property name, options -autosize".

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-PassThru

Restituisce un oggetto che rappresenta la nuova variabile. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Scope <string>

Determina l'ambito della variabile. I valori validi sono "Global", "Local", "Script" oppure un numero relativo all'ambito corrente, ovvero da 0 al numero di ambiti, dove 0 corrisponde all'ambito corrente e 1 al relativo padre. Il valore predefinito è "Local". Per ulteriori informazioni, vedere about_Scopes.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Value <Object>

Specifica il valore della variabile.

Obbligatorio?

false

Posizione?

2

Valore predefinito

Accettare input da pipeline?

true (ByValue, ByPropertyName)

Accettare caratteri jolly?

false

-Visibility <SessionStateEntryVisibility>

Determina se la variabile è visibile all'esterno della sessione in cui è stata creata. Questo parametro viene progettato per l'utilizzo in script e comandi che verranno forniti ad altri utenti.

I valori validi sono:

-- Public: la variabile è visibile. L'impostazione predefinita è "Public".

-- Private: la variabile non è visibile.

Quando una variabile è privata, non viene visualizzata in elenchi di variabili, ad esempio quelli restituiti da Get-Variable o in visualizzazioni dell'unità Variable:. I comandi per leggere o modificare il valore di una variabile privata restituiscono un errore. L'utente può tuttavia eseguire comandi che utilizzano una variabile privata se i comandi sono stati scritti nella sessione in cui è stata definita la variabile.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Public

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

System.Object

È possibile reindirizzare un oggetto che rappresenta il valore della variabile a Set-Variable.

Output

Nessuno o System.Management.Automation.PSVariable

Quando si utilizza il parametro PassThru, Set-Variable genera un oggetto System.Management.Automation.PSVariable che rappresenta la variabile nuova o modificata. Negli altri casi, il cmdlet non genera alcun output.

Esempio 1

C:\PS>set-variable -name desc -value "A description"

C:\PS>get-variable -name desc

Descrizione
-----------
Questi comandi impostano il valore della variabile "desc" su "A description" e ottengono quindi il valore della variabile.






Esempio 2

C:\PS>set-variable -name processes -value (Get-Process) -option constant -scope global -description "All processes" -passthru | format-list -property *

Descrizione
-----------
Con questo comando verrà creata una variabile globale di sola lettura che include tutti i processi disponibili nel sistema e verranno quindi visualizzate tutte le proprietà della variabile.

Per creare la variabile verrà utilizzato il cmdlet Set-Variable. Verranno quindi utilizzati il parametro PassThru per creare un oggetto che rappresenta la nuova variabile e l'operatore pipeline (|) per passare l'oggetto al cmdlet Format-List. Verrà infine utilizzato il parametro Property di Format-List con il valore all (*) per visualizzare tutte le proprietà della variabile appena creata. 

Il valore "(Get-Process)" è racchiuso tra parentesi per indicare che verrà eseguito prima dell'archiviazione nella variabile. In caso contrario, la variabile includerà le parole "Get-Process".






Esempio 3

C:\PS># set-variable -name counter -visibility private

C:\PS> new-variable -name counter -visibility public -value 26

C:\PS> $counter
26

C:\PS> get-variable c*

Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}
Counter 26

C:\PS> set-variable -name counter -visibility private

C:\PS> get-variable c*

Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}

C:\PS> $counter
"Cannot access the variable '$counter' because it is a private variable"

C:\PS> .\use-counter.ps1
Commands completed successfully.

Descrizione
-----------
In questo comando viene illustrato come impostare la visibilità di una variabile su "Private". Questa variabile può essere letta e modificata dagli script che dispongono delle autorizzazioni necessarie, ma non è visibile all'utente.

Nell'output di esempio viene illustrata la differenza nel comportamento delle variabili pubbliche e private.






Vedere anche




Argomenti della Guida