Condividi tramite


Set-Variable

Imposta il valore di una variabile. Crea la variabile se una con il nome richiesto non esiste.

Sintassi

Default (Impostazione predefinita)

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 cmdlet Set-Variable assegna un valore a una variabile specificata o modifica il valore corrente. Se la variabile non esiste, il cmdlet lo crea.

Esempio

Esempio 1: Impostare una variabile e ottenere il relativo valore

PS C:\> Set-Variable -Name "desc" -Value "A description"
PS C:\> Get-Variable -Name "desc"

Questi comandi impostano il valore della variabile desc su A description e quindi ottiene il valore della variabile.

Esempio 2: Impostare una variabile globale di sola lettura

PS C:\> Set-Variable -Name "processes" -Value (Get-Process) -Option constant -Scope global -Description "All processes" -PassThru | Format-List -Property *

Questo comando crea una variabile globale di sola lettura che contiene tutti i processi nel sistema e quindi visualizza tutte le proprietà della variabile.

Il comando usa il cmdlet Set-Variable 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 cmdlet Format-List. Usa il parametro Property di Format-List con il valore (*) 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

PS C:\> New-Variable -Name "counter" -Visibility Public -Value 26
PS C:\> $Counter
26
PS C:\> Get-Variable c*

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

PS C:\> Set-Variable -Name "counter" -Visibility Private
PS C:\> Get-Variable c*

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

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

PS C:\> .\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 dagli script con le autorizzazioni necessarie, ma non è visibile all'utente.

L'output di esempio mostra la differenza nel comportamento delle variabili pubbliche e private.

Parametri

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False
Alias:cfr

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Description

Specifica la descrizione della variabile.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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. Sono consentiti i metacaratteri.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:True
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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 abbia un valore di opzione ReadOnly o Constant. Per altre informazioni, vedere il parametro option .

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Include

Specifica una matrice di elementi inclusi nel cmdlet nell'operazione. Il valore di questo parametro specifica il parametro Nome. Immettere un nome o un modello di nome, ad esempio c*. Sono consentiti i metacaratteri.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:True
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Name

Specifica il nome della variabile.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-Option

Specifica il valore della proprietà Opzioni della variabile.

I valori validi sono:

  • Nessuno: non imposta alcuna opzione. "Nessuna" è l'impostazione predefinita.
  • ReadOnly: può essere eliminato. Non può essere modificato, ad eccezione dell'utilizzo del parametro Force.
  • Costante: non può essere eliminata o modificata. "Constant" è valido solo quando si crea una variabile. Non è possibile modificare le opzioni di una variabile esistente in "Costante".
  • Private: la variabile è disponibile solo nell'ambito corrente.
  • AllScope: la variabile viene copiata in tutti i nuovi ambiti creati.

Per visualizzare la proprietà opzioni di tutte le variabili nella sessione, digitare Get-Variable | Format-Table -Property name, options -Autosize.

Proprietà dei parametri

Tipo:ScopedItemOptions
Valore predefinito:None
Valori accettati:None, ReadOnly, Constant, Private, AllScope, Unspecified
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-PassThru

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

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Scope

Specifica l'ambito della variabile. I valori accettabili per questo parametro sono:

  • Generale
  • Locale
  • Sceneggiatura
  • Privato
  • 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.

Proprietà dei parametri

Tipo:String
Valore predefinito:Local
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Value

Specifica il valore della variabile.

Proprietà dei parametri

Tipo:Object
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:1
Obbligatorio:False
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-Visibility

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

I valori validi sono:

  • Public: la variabile è visibile. ("Public" è l'impostazione predefinita.
  • Private: la variabile non è visibile.

Quando una variabile è privata, non viene visualizzata in 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.

Proprietà dei parametri

Tipo:SessionStateEntryVisibility
Valore predefinito:Public
Valori accettati:Public, Private
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False
Alias:Wi

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

Input

Object

È possibile inviare tramite pipe un oggetto che rappresenta il valore della variabile a Set-Variable.

Output

None or System.Management.Automation.PSVariable

Quando si usa il parametro PassThru , Set-Variable genera un System.Management.Automation.PSVariable che rappresenta la variabile nuova o modificata. In caso contrario, questo cmdlet non genera alcun output.