Freigeben über


Set-Variable

Legt den Wert einer Variablen fest. Erstellt die Variable, wenn eine mit dem angeforderten Namen nicht vorhanden ist.

Syntax

Default (Standardwert)

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

Beschreibung

Das Cmdlet Set-Variable weist einer angegebenen Variablen einen Wert zu oder ändert den aktuellen Wert. Wenn die Variable nicht vorhanden ist, wird sie vom Cmdlet erstellt.

Beispiele

Beispiel 1: Festlegen einer Variablen und Abrufen des Werts

Diese Befehle legen den Wert der $desc Variablen auf A descriptionfest und ruft dann den Wert der Variablen ab.

Set-Variable -Name "desc" -Value "A description"
Get-Variable -Name "desc"
Name                           Value
----                           -----
desc                           A description

Beispiel 2: Festlegen einer globalen, schreibgeschützten Variablen

In diesem Beispiel wird eine globale, schreibgeschützte Variable erstellt, die alle Prozesse im System enthält, und zeigt dann alle Eigenschaften der Variablen an.

Set-Variable -Name "processes" -Value (Get-Process) -Option Constant -Scope Global -Description "All processes" -PassThru |
    Format-List -Property *

Der Befehl verwendet das Cmdlet Set-Variable, um die Variable zu erstellen. Es verwendet den PassThru Parameter, um ein Objekt zu erstellen, das die neue Variable darstellt, und verwendet den Pipelineoperator (|), um das Objekt an das Cmdlet Format-List zu übergeben. Es verwendet den Property-Parameter von Format-List mit dem Wert "all(*)", um alle Eigenschaften der neu erstellten Variablen anzuzeigen.

Der Wert (Get-Process)wird in Klammern eingeschlossen, um sicherzustellen, dass er ausgeführt wird, bevor er in der Variablen gespeichert wird. Andernfalls enthält die Variable die Wörter Get-Process.

Beispiel 3: Grundlegendes zu öffentlichen und privaten Variablen

In diesem Beispiel wird gezeigt, wie Sie die Sichtbarkeit einer Variablen in Privateändern. Diese Variable kann von Skripts mit den erforderlichen Berechtigungen gelesen und geändert werden, ist aber für den Benutzer nicht sichtbar.

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.

Dieser Befehl zeigt, wie Sie die Sichtbarkeit einer Variablen in "Privat" ändern. Diese Variable kann von Skripts mit den erforderlichen Berechtigungen gelesen und geändert werden, ist aber für den Benutzer nicht sichtbar.

Parameter

-Confirm

Fordert Sie zur Bestätigung auf, bevor Sie das Cmdlet ausführen.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:vgl

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Description

Gibt die Beschreibung der Variablen an.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Exclude

Gibt ein Array von Elementen an, die dieses Cmdlet vom Vorgang ausschließt. Der Wert dieses Parameters qualifiziert den parameter Path. Geben Sie ein Pfadelement oder Muster ein, z. B. *.txt. Wildcards sind zulässig.

Parametereigenschaften

Typ:

String[]

Standardwert:None
Unterstützt Platzhalter:True
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Force

Ermöglicht es Ihnen, eine Variable mit demselben Namen wie eine vorhandene schreibgeschützte Variable zu erstellen oder den Wert einer schreibgeschützten Variablen zu ändern.

Standardmäßig können Sie eine Variable überschreiben, es sei denn, die Variable hat einen Optionswert von ReadOnly oder Constant. Weitere Informationen finden Sie im Parameter Option.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Include

Gibt ein Array von Elementen an, die dieses Cmdlet in den Vorgang einschließt. Der Wert dieses Parameters qualifiziert den parameter Name. Geben Sie ein Namens- oder Namensmuster ein, z. B. c*. Wildcards sind zulässig.

Parametereigenschaften

Typ:

String[]

Standardwert:None
Unterstützt Platzhalter:True
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Name

Gibt den Variablennamen an.

Parametereigenschaften

Typ:

String[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:0
Obligatorisch.:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-Option

Gibt den Wert der Options -Eigenschaft der Variablen an.

Gültige Werte sind:

  • None: Legt keine Optionen fest. (None ist der Standardwert.)
  • ReadOnly: Kann gelöscht werden. Kann nicht geändert werden, mit Ausnahme des Force-Parameters.
  • 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 in Constantändern.
  • Private: Die Variable ist nur im aktuellen Bereich verfügbar.
  • AllScope: Die Variable wird in alle neuen Bereiche kopiert, die erstellt werden.

Diese Werte werden als auf Flaggen basierende 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 Option Parameter ü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 der Tab-Vervollständigung für die Werte.

Parametereigenschaften

Typ:ScopedItemOptions
Standardwert:None
Zulässige Werte:None, ReadOnly, Constant, Private, AllScope, Unspecified
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-PassThru

Gibt ein Objekt zurück, das die neue Variable darstellt. Standardmäßig generiert dieses Cmdlet keine Ausgabe.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Scope

Gibt den Bereich der Variablen an. Die zulässigen Werte für diesen Parameter sind:

  • Global
  • Local
  • Script
  • Private
  • Eine Zahl relativ zum aktuellen Bereich (0 bis zur Anzahl der Bereiche, wobei 0 der aktuelle Bereich ist und 1 das übergeordnete Element ist).

Local ist die Standardeinstellung.

Weitere Informationen finden Sie unter about_Scopes.

Parametereigenschaften

Typ:String
Standardwert:Local
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Value

Gibt den Wert der Variablen an.

Parametereigenschaften

Typ:Object
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:1
Obligatorisch.:False
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-Visibility

Bestimmt, ob die Variable außerhalb der Sitzung sichtbar ist, in der sie erstellt wurde. Dieser Parameter wurde für die Verwendung in Skripts und Befehlen entwickelt, die anderen Benutzern übermittelt werden.

Gültige Werte sind:

  • Public: Die Variable ist sichtbar. (Public ist der Standardwert.)
  • Private: Die Variable ist nicht sichtbar.

Wenn eine Variable privat ist, wird sie nicht in Listen von Variablen angezeigt, z. B. in Listen von Variablen, die von Get-Variablezurückgegeben werden, oder in der Anzeige der Variable: Laufwerk. 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.

Parametereigenschaften

Typ:SessionStateEntryVisibility
Standardwert:Public
Zulässige Werte:Public, Private
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-WhatIf

Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:Wi

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

Eingaben

Object

Sie können ein Objekt weiterleiten, das den Wert der Variablen an dieses Cmdlet darstellt.

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 oder geänderte Variable darstellt.

Hinweise

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

  • Alle Plattformen:
    • set
    • sv