New-Variable

Erstellt einer neuen 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 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 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 den zugehörigen Wert eingeben, z $Var = 3. B. das Cmdlet verwenden, um dessen Parameter zu verwenden New-Variable .

Beispiele

Beispiel 1: Erstellen einer Variablen

New-Variable days

Mit diesem Befehl wird eine neue Variable namens "Days" erstellt. Sie müssen den Parameter Name nicht eingeben.

Beispiel 2: Erstellen einer Variablen und Zuweisen eines Werts

New-Variable -Name "zipcode" -Value 98033

Mit diesem Befehl wird eine Variable namens Zipcode erstellt und dem Wert 98033 zugewiesen.

Beispiel 3: Erstellen 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 New-Variable verwenden, eine Variable vor überschrieben zu werden.

Der erste Befehl erstellt eine neue Variable mit dem Namen "Max" und legt den Wert auf 256 fest. Er verwendet den Parameter Option mit einem Wert von 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 Parameter Force , 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 zugewiesen Constant , sodass die Variable im aktuellen Bereich und allen neuen Bereichen verfügbar ist, die erstellt wurden und nicht geändert oder gelöscht werden können.

Beispiel 5: Erstellen einer privaten Variablen

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 mit dem Namen Counter verfügt. Der Befehl verwendet den Visibility-Parameter mit dem Wert "Private", um die Variable zu erstellen.

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

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: Erstellen einer Variablen mit einem Leerzeichen

In diesem Beispiel wird 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 geschweiften Klammern zugegriffen werden.

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

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 einen Optionswert von ReadOnly oder 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, mit Ausnahme 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 ändern in Constant.

Diese Werte werden als flagbasierte Enumeration definiert. Sie können mehrere Werte kombinieren, um mehrere Flags mithilfe dieses Parameters festzulegen. Die Werte können als Array von Werten oder als kommagetrennte Zeichenfolge dieser Werte an den Parameter Option übergeben werden. Das Cmdlet kombiniert die Werte mithilfe eines Binary-OR-Vorgangs. Das Übergeben von Werten als Array ist die einfachste Option und ermöglicht ihnen auch die Verwendung des Tabstopps für die Werte.

Um die Options-Eigenschaft aller Variablen in der Sitzung anzuzeigen, geben Sie folgendes ein Get-Variable | Format-Table -Property name, options -AutoSize.

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 – Auf variablen, die im globalen Bereich erstellt wurden, kann überall in einem PowerShell-Prozess zugegriffen werden.
  • Local – Der lokale Bereich bezieht sich auf den aktuellen Bereich, dies kann je nach Kontext ein beliebiger Bereich sein. Local ist der Standardbereich, wenn der Bereichsparameter nicht angegeben wird.
  • Script – Variablen, die im Skriptbereich erstellt wurden, sind nur innerhalb der Skriptdatei oder des Moduls zugänglich, in der sie erstellt werden.
  • Eine Zahl relativ zum aktuellen Bereich (0 bis zur Anzahl der Bereiche, wobei 0 der aktuelle Bereich ist, 1 ist das übergeordnete Element, 2 das übergeordnete Element des übergeordneten Bereichs usw.). Negative Zahlen können nicht verwendet werden.

Hinweis

Der Parameter akzeptiert auch den Wert von Private. Private ist nicht tatsächlich ein Bereich, sondern eine optionale Einstellung für eine Variable. Die Verwendung des Private Werts mit diesem Cmdlet ändert jedoch nicht die Sichtbarkeit der Variablen. 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 dient zur Verwendung in Skripts und Befehlen, die für andere Benutzer bereitgestellt 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 dem Laufwerk zurückgegebenen Get-VariableVariablen oder in Der Anzeige 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

Object

Sie können jedes Objekt an New-Variable.

Ausgaben

None

Standardmäßig gibt dieses Cmdlet keine Ausgabe zurück.

PSVariable

Wenn Sie den PassThru-Parameter verwenden, gibt dieses Cmdlet ein PSVariable-Objekt zurück, das die neue Variable darstellt.

Hinweise

PowerShell enthält die folgenden Aliase für New-Variable:

  • Alle Plattformen:
    • nv