New-Variable
Erstellt eine neue Variable.
Syntax
New-Variable
[-Name] <String>
[[-Value] <Object>]
[-Description <String>]
[-Option <ScopedItemOptions>]
[-Visibility <SessionStateEntryVisibility>]
[-Force]
[-PassThru]
[-Scope <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Das New-Variable
Cmdlet erstellt eine neue Variable in Windows PowerShell. Sie können der Variablen beim Erstellen einen Wert zuweisen oder den Wert zuweisen bzw. ändern, nachdem die Variable erstellt wurde.
Sie können die Parameter von New-Variable
verwenden, um die Eigenschaften der Variablen festzulegen, den Bereich einer Variablen festzulegen und zu bestimmen, ob Variablen öffentlich oder privat sind.
In der Regel erstellen Sie eine neue Variable, indem Sie den Variablennamen und ihren Wert eingeben, z. B $Var = 3
. , aber Sie können das Cmdlet verwenden, um seine New-Variable
Parameter zu verwenden.
Beispiele
Beispiel 1: Create einer Variablen
New-Variable days
Mit diesem Befehl wird eine neue Variable mit dem Namen days erstellt. Sie müssen den Parameter Name nicht eingeben.
Beispiel 2: Create einer Variablen und Zuweisen eines Werts
New-Variable -Name "zipcode" -Value 98033
Dieser Befehl erstellt eine Variable namens zipcode und weist ihr den Wert 98033 zu.
Beispiel 3: Create einer Variablen mit der Option 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 diesem Beispiel wird gezeigt, wie Sie die ReadOnly
Option von New-Variable
verwenden, um eine Variable vor überschrieben zu schützen.
Der erste Befehl erstellt eine neue Variable mit dem Namen Max und legt ihren Wert auf 256 fest. Es verwendet den Option-Parameter mit dem Wert .ReadOnly
Der zweite Befehl versucht, eine zweite Variable mit demselben Namen zu erstellen. Dieser Befehl gibt einen Fehler zurück, da für diese Variable die Option „schreibgeschützt“ festgelegt ist.
Der dritte Befehl verwendet den Force-Parameter , um den schreibgeschützten Schutz für die Variable außer Kraft zu setzen. In diesem Fall ist der Befehl zum Erstellen einer neuen Variable mit dem gleichen Namen erfolgreich.
Beispiel 4: Zuweisen mehrerer Optionen zu einer Variablen
New-Variable -Name 'TestVariable' -Value 'Test Value' -Option AllScope,Constant
In diesem Beispiel wird eine Variable erstellt und die AllScope
Optionen und Constant
zugewiesen, sodass die Variable im aktuellen Bereich und allen neu erstellten Bereichen verfügbar ist und nicht geändert oder gelöscht werden kann.
Beispiel 5: Create einer privaten Variablen
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
...
Mit diesem Befehl wird das Verhalten einer privaten Variable in einem Modul veranschaulicht. Das Modul enthält das Get-Counter
Cmdlet, das über eine private Variable namens Counter verfügt. Der Befehl verwendet den Visibility-Parameter mit dem Wert Private, um die Variable zu erstellen.
Die Beispielausgabe zeigt das Verhalten einer privaten Variable. Der Benutzer, der das Modul geladen hat, kann den Wert der Counter-Variable nicht anzeigen oder ändern, die Counter-Variable kann jedoch durch die Befehle im Modul gelesen und geändert werden.
Beispiel 6: Create einer Variablen mit einem Leerzeichen
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
Dieser Befehl veranschaulicht, dass Variablen mit Leerzeichen erstellt werden können. Auf die Variablen kann mithilfe des Get-Variable
Cmdlets oder direkt durch Trennzeichen einer Variablen mit Klammern zugegriffen werden.
Parameter
-Confirm
Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Description
Gibt eine Beschreibung der Variablen an.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Gibt an, dass das Cmdlet eine Variable mit demselben Namen wie eine vorhandene schreibgeschützte Variable erstellt.
Standardmäßig können Sie eine Variable überschreiben, es sei denn, die Variable verfügt über den Optionswert oder ReadOnly
Constant
. Weitere Informationen finden Sie im Parameter Option .
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Gibt einen Namen für die neue Variable an.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Option
Gibt den Wert der Options-Eigenschaft der Variablen an. Zulässige Werte für diesen Parameter:
None
– Legt keine Optionen fest.None
ist die Standardoption.ReadOnly
- Kann gelöscht werden. Kann nicht geändert werden, außer mithilfe des Force-Parameters .Private
– Die Variable ist nur im aktuellen Bereich verfügbar.AllScope
– Die Variable wird in alle neuen Bereiche kopiert, die erstellt werden.Constant
– Kann nicht gelöscht oder geändert werden.Constant
ist nur gültig, wenn Sie eine Variable erstellen. Sie können die Optionen einer vorhandenen Variablen nicht inConstant
ändern.
Diese Werte werden als flagbasierte Enumeration definiert. Sie können mehrere Werte miteinander kombinieren, um mehrere Flags mit diesem Parameter festzulegen. Die Werte können als Array von Werten oder als durch Trennzeichen getrennte Zeichenfolge dieser Werte an den Parameter Option übergeben werden. Das Cmdlet kombiniert die Werte mithilfe eines binär-OR-Vorgangs. Das Übergeben von Werten als Array ist die einfachste Option und ermöglicht es Ihnen auch, die Tabulatorvervollständigung für die Werte zu verwenden.
Geben Sie ein, um die Options-Eigenschaft aller Variablen in der Sitzung Get-Variable | Format-Table -Property name, options -AutoSize
anzuzeigen.
Type: | ScopedItemOptions |
Accepted values: | None, ReadOnly, Constant, Private, AllScope, Unspecified |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Gibt ein Objekt zurück, das das Element darstellt, mit dem Sie arbeiten. Standardmäßig wird von diesem Cmdlet keine Ausgabe generiert.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
Gibt den Bereich der neuen Variablen an. Zulässige Werte für diesen Parameter:
Global
– Variablen, die im globalen Bereich erstellt wurden, sind in einem PowerShell-Prozess überall zugänglich.Local
- Der lokale Bereich bezieht sich auf den aktuellen Bereich, dies kann je nach Kontext ein beliebiger Bereich sein.Script
– Auf variablen, die im Skriptbereich erstellt wurden, kann nur innerhalb der Skriptdatei oder des Moduls zugegriffen werden, in der sie erstellt werden.Private
– Auf variablen, die im privaten Bereich erstellt wurden, kann nicht außerhalb des Bereichs zugegriffen werden, in dem sie vorhanden sind. Sie können den privaten Bereich verwenden, um eine private Version eines Elements mit demselben Namen in einem anderen Bereich zu erstellen.- Eine Zahl relativ zum aktuellen Bereich (0 durch die Anzahl der Bereiche, wobei 0 der aktuelle Bereich ist, 1 sein übergeordneter Bereich, 2 das übergeordnete Element des übergeordneten Bereichs usw.). Negative Zahlen können nicht verwendet werden.
Local
ist der Standardbereich, wenn der Bereichsparameter nicht angegeben wird.
Weitere Informationen finden Sie unter about_Scopes.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Value
Gibt den Anfangswert der Variablen an.
Type: | Object |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Visibility
Bestimmt, ob die Variable außerhalb der Sitzung, in der sie erstellt wurde, sichtbar ist. Dieser Parameter ist für die Verwendung in Skripts und Befehlen konzipiert, die an andere Benutzer übermittelt werden. Zulässige Werte für diesen Parameter:
Public
– Die Variable ist sichtbar.Public
ist die Standardoption.Private
- Die Variable ist nicht sichtbar.
Wenn eine Variable privat ist, wird sie nicht in Listen von Variablen angezeigt, z. B. in den von Get-Variable
zurückgegebenen Variablen oder in den Anzeigen des Variable:
Laufwerks. Befehle zum Lesen oder Ändern des Werts einer privaten Variablen geben einen Fehler zurück. Der Benutzer kann jedoch Befehle ausführen, die eine private Variable verwenden, wenn die Befehle in der Sitzung geschrieben wurden, in der die Variable definiert wurde.
Type: | SessionStateEntryVisibility |
Accepted values: | Public, Private |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Sie können einen Wert an übergeben New-Variable
.
Ausgaben
None or System.Management.Automation.PSVariable
Wenn Sie den PassThru-Parameter verwenden, wird ein System.Management.Automation.PSVariable-Objekt generiert, New-Variable
das die neue Variable darstellt. Andernfalls wird von diesem Cmdlet keine Ausgabe generiert.