New-Variable
Crea una nuova variabile.
Sintassi
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 o assegnare o modificare il valore dopo averla creata.
È 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 assegnargli un valore
New-Variable -Name "zipcode" -Value 98033
Questo comando crea una variabile denominata zipcode e la assegna al 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é per la variabile è stata impostata l'opzione di sola lettura.
Il terzo comando usa il parametro Force per eseguire l'override della protezione di sola lettura nella variabile. In questo caso, il comando per creare una nuova variabile con lo stesso nome riesce.
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 mostra 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 usa il parametro Visibility con un valore 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 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.
Tipo: | SwitchParameter |
Alias: | cf |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Description
Specifica una descrizione della variabile.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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 .
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Name
Specifica un nome per la nuova 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 per questo parametro sono:
None
- Non imposta alcuna opzione.None
è l'impostazione predefinita.ReadOnly
- Può essere eliminato. Non può essere modificato, ad eccezione dell'utilizzo del parametro Force .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 inConstant
.
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.
Per visualizzare la proprietà Options di tutte le variabili nella sessione, digitare Get-Variable | Format-Table -Property name, options -AutoSize
.
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 l'elemento in uso. Per impostazione predefinita, il cmdlet non genera alcun output.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Scope
Specifica l'ambito della nuova variabile. I valori validi 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.- Numero relativo all'ambito corrente (da 0 al numero di ambiti, dove 0 è l'ambito corrente, 1 è il padre, 2 l'elemento padre dell'ambito padre e così via). Non è possibile utilizzare numeri negativi.
Nota
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.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Value
Specifica il valore iniziale 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 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-Variable
o 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.
Tipo: | SessionStateEntryVisibility |
Valori accettati: | Public, Private |
Posizione: | Named |
Valore predefinito: | None |
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 qualsiasi oggetto a New-Variable
.
Output
None
Per impostazione predefinita, questo cmdlet non restituisce alcun output.
Quando si usa il parametro PassThru , questo cmdlet restituisce un oggetto PSVariable che rappresenta la nuova variabile.
Note
Windows PowerShell include gli alias seguenti per New-Variable
:
nv