Condividi tramite


New-Variable

Crea una nuova variabile.

Sintassi

Default (impostazione predefinita).

New-Variable
    [-Name] <String>
    [[-Value] <Object>]
    [-Description <String>]
    [-Option <ScopedItemOptions>]
    [-Visibility <SessionStateEntryVisibility>]
    [-Force]
    [-PassThru]
    [-Scope <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Descrizione

Il New-Variable cmdlet crea una nuova variabile in PowerShell. È possibile assegnare un valore alla variabile durante la creazione oppure assegnare o modificare il valore dopo la creazione.

È possibile usare i parametri di New-Variable per impostare le proprietà della variabile, impostare l'ambito di una variabile e determinare se le variabili sono pubbliche o private.

In genere, si crea una nuova variabile digitando il nome della variabile e il relativo valore, ad esempio $Var = 3, ma è possibile usare il New-Variable cmdlet per usare i relativi parametri.

Esempio

Esempio 1: Creare una variabile

New-Variable days

Questo comando crea una nuova variabile denominata days. Non è necessario digitare il parametro Name .

Esempio 2: Creare una variabile e assegnarle un valore

New-Variable -Name "zipcode" -Value 98033

Questo comando crea una variabile denominata zipcode e le assegna il valore 98033.

Esempio 3: Creare una variabile con l'opzione ReadOnly

PS C:\> New-Variable -Name Max -Value 256 -Option ReadOnly
PS C:\> New-Variable -Name max -Value 1024

New-Variable : A variable with name 'max' already exists.
At line:1 char:1
+ New-Variable -Name max -Value 1024
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (max:String) [New-Variable], SessionStateException
    + FullyQualifiedErrorId : VariableAlreadyExists,Microsoft.PowerShell.Commands.NewVariableCommand

PS C:\> New-Variable -Name max -Value 1024 -Force

In questo esempio viene illustrato come usare l'opzione ReadOnly di New-Variable per proteggere una variabile dalla sovrascrittura.

Il primo comando crea una nuova variabile denominata Max e ne imposta il valore su 256. Usa il parametro Option con il valore .ReadOnly

Il secondo comando tenta di creare una seconda variabile con lo stesso nome. Questo comando restituisce un errore, perché l'opzione di sola lettura è impostata sulla variabile.

Il terzo comando utilizza il parametro Force per eseguire l'override della protezione di sola lettura sulla variabile. In questo caso, il comando per creare una nuova variabile con lo stesso nome ha esito positivo.

Esempio 4: Assegnare più opzioni a una variabile

New-Variable -Name 'TestVariable' -Value 'Test Value' -Option AllScope,Constant

In questo esempio viene creata una variabile e vengono assegnate le AllScope opzioni e Constant in modo che la variabile sia disponibile nell'ambito corrente e che eventuali nuovi ambiti creati e non possano essere modificati o eliminati.

Esempio 5: Creare una variabile privata

Questo comando dimostra il comportamento di una variabile privata in un modulo. Il modulo contiene il Get-Counter cmdlet , che ha una variabile privata denominata Counter. Il comando utilizza il parametro Visibility con un valore di Private per creare la variabile.

PS C:\> New-Variable -Name counter -Visibility Private

#Effect of private variable in a module.

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"
At line:1 char:1
+ $counter
+ ~~~~~~~~
    + CategoryInfo          : PermissionDenied: (counter:String) [], SessionStateException
    + FullyQualifiedErrorId : VariableIsPrivate

PS C:\> Get-Counter
Name         Value
----         -----
Counter1     3.1415
...

L'output di esempio mostra il comportamento di una variabile privata. L'utente che ha caricato il modulo non può visualizzare o modificare il valore della variabile Counter, ma la variabile Counter può essere letta e modificata dai comandi presenti nel modulo.

Esempio 6: Creare una variabile con uno spazio

In questo esempio viene illustrato che è possibile creare variabili con spazi. È possibile accedere alle variabili usando il Get-Variable cmdlet o direttamente delimitando una variabile con parentesi graffe.

PS C:\> New-Variable -Name 'with space' -Value 'abc123xyz'

PS C:\> Get-Variable -Name 'with space'

Name                           Value
----                           -----
with space                     abc123xyz

PS C:\> ${with space}
abc123xyz

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

-Force

Indica che il cmdlet crea una variabile con lo stesso nome di una variabile di sola lettura esistente.

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 .

Proprietà dei parametri

Tipo:SwitchParameter
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

-Name

Specifica un nome per la nuova 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 accettabili per questo parametro sono:

  • None - Non imposta alcuna opzione. None è l'impostazione predefinita.
  • ReadOnly - Può essere eliminato. Non può essere modificato, se non utilizzando il parametro Forza .
  • Private - La variabile è disponibile solo nell'ambito corrente.
  • AllScope - La variabile viene copiata in tutti i nuovi ambiti creati.
  • 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.

Questi valori sono definiti come un'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 array è l'opzione più semplice e consente anche di usare il completamento automatico con il tasto tab sui valori.

Per visualizzare la proprietà Options 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 l'elemento con cui si sta lavorando. Per impostazione predefinita, questo cmdlet non genera alcun output.

Proprietà dei parametri

Tipo:SwitchParameter
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

-Scope

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

  • Global - Le variabili create nell'ambito globale sono accessibili ovunque in un processo di PowerShell.
  • Local - L'ambito locale fa riferimento all'ambito corrente, può essere qualsiasi ambito a seconda del contesto. Local è l'ambito predefinito quando il parametro di ambito non è specificato.
  • Script - Le variabili create nell'ambito dello script sono accessibili solo all'interno del file di script o del modulo in cui vengono create.
  • Un numero relativo all'ambito corrente (da 0 al numero di ambiti, dove 0 è l'ambito corrente, 1 è l'ambito padre, 2 l'elemento padre dell'ambito padre e così via). I numeri negativi non possono essere utilizzati.

Annotazioni

Il parametro accetta anche il valore di Private. Private non è in realtà un ambito, ma un'impostazione facoltativa per una variabile. Tuttavia, l'uso del Private valore con questo cmdlet non modifica la visibilità della variabile. Per altre informazioni, vedere about_Scopes.

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

-Value

Specifica il valore iniziale 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 accettabili per questo parametro 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 nelle visualizzazioni dell'unità Variable: . 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:None
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 reindirizzare qualsiasi oggetto a New-Variable.

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 nuova variabile.

Note

PowerShell include gli alias seguenti per New-Variable:

  • Tutte le piattaforme:
    • nv