Condividi tramite


Set-Variable

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

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 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

Questi comandi impostano il valore della variabile $desc su A descriptione 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 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 un valore di all (*) 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 dagli 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 dagli 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. Sono consentiti caratteri jolly.

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 ReadOnly 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 nome. Immettere un nome o un modello di nome, ad esempio c*. Sono consentiti caratteri jolly.

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à Opzioni della variabile.

I valori validi sono:

  • None: non imposta opzioni. (None è l'impostazione predefinita.
  • ReadOnly: può essere eliminato. Non può essere modificato, ad eccezione dell'utilizzo del parametro Force.
  • Constant: non è possibile eliminare o modificare. Constant è valido solo quando si crea una variabile. Non è possibile modificare le opzioni di una variabile esistente in Constant.
  • 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, questo 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 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-Variableo nella visualizzazione 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 cosa accadrebbe se il cmdlet viene eseguito. 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

Object

È 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.

PSVariable

Quando si usa 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