Legt den Wert einer Variablen fest. Erstellt die Variable, wenn keine Variable mit dem angeforderten Namen vorhanden ist. (Set-Variable)
NAME
Set-Variable
# ÜBERSICHT
Legt den Wert einer Variablen fest. Erstellt die Variable, wenn keine Variable mit dem angeforderten Namen vorhanden ist.
# SYNTAX
Set-Variable [-Name] <string[]> [[-Value] <Object>] [-Description <string>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Option {None | ReadOnly | Constant | Private | AllScope}] [-PassThru] [-Scope <string>] [-Visibility {Public | Private}] [-Confirm] [-WhatIf] [<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.
# PARAMETER
-Description <string>
Gibt die Beschreibung der Variablen an.
Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false
-Exclude <string[]>
Lässt die angegebenen Elemente aus. Der Path-Parameter wird durch den Wert dieses Parameters qualifiziert. Geben Sie ein Pfadelement oder -muster wie "*.txt" ein. Platzhalter sind zulässig.
Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false
-Force [<SwitchParameter>]
Ermöglicht es Ihnen, eine Variable mit dem gleichen 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, sofern die Variable nicht den Optionswert "ReadOnly" oder "Constant" aufweist. Weitere Informationen finden Sie unter dem Option-Parameter.
Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false
-Include <string[]>
Ändert nur die angegebenen Elemente. Der Name-Parameter wird durch den Wert dieses Parameters qualifiziert. Geben Sie ein Namensmuster ein, z. B. "c*". Platzhalter sind zulässig.
Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false
-Name <string[]>
Gibt den Variablennamen an.
Erforderlich? true
Position? 1
Standardwert
Pipelineeingaben akzeptieren?true (ByPropertyName)
Platzhalterzeichen akzeptieren?false
-Option <ScopedItemOptions>
Ändert den Wert der Options-Eigenschaft der Variablen. Gültige Werte:
- None: Legt keine Optionen fest. (Der Standardwert ist "None".)
- ReadOnly: Die Eigenschaften der Variablen können nicht geändert werden, außer bei Verwendung des Force-Parameters. Sie können die Variable mithilfe von Remove-Variable löschen.
- Constant: Die Variable kann nicht gelöscht und ihre Eigenschaften können nicht geändert werden. "Constant" ist nur verfügbar, wenn Sie einen Alias erstellen. Sie können die Option einer vorhandenen Variablen nicht in "Constant" ändern.
- Private: Die Variable ist nur in dem vom Scope-Parameter angegebenen Bereich verfügbar. Sie wird von untergeordneten Bereichen geerbt.
- AllScope: Die Variable wird in alle neuen Bereiche kopiert, die erstellt werden.
Um die Options-Eigenschaft der Variablen anzuzeigen, geben Sie "get-variable| format-table -property name, options -autosize" ein.
Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false
-PassThru [<SwitchParameter>]
Gibt ein Objekt zurück, das die neue Variable darstellt. Standardmäßig wird von diesem Cmdlet keine Ausgabe generiert.
Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false
-Scope <string>
Bestimmt den Bereich der Variablen. Gültige Werte sind "global", "local", "script", oder eine Zahl in Bezug auf den aktuellen Bereich (0 bis zur Anzahl der Bereiche, wobei 0 der aktuelle Bereich und 1 der übergeordnete Bereich ist). Der Standardwert ist "local". Weitere Informationen finden Sie unter "about_Scopes".
Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false
-Value <Object>
Gibt den Wert der Variablen an.
Erforderlich? false
Position? 2
Standardwert
Pipelineeingaben akzeptieren?true (ByValue, ByPropertyName)
Platzhalterzeichen akzeptieren?false
-Visibility <SessionStateEntryVisibility>
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 vorgesehen, die für andere Benutzer bereitgestellt werden.
Gültige Werte:
- Public: Die Variable ist sichtbar. (Der Standardwert lautet "Public".)
- Private: Die Variable ist nicht sichtbar.
Eine private Variable wird nicht in Listen von Variablen, z. B. den von Get-Variable zurückgegebenen Listen, oder in Anzeigen des Laufwerks "Variable:" angezeigt. Befehle zum Lesen oder Ändern des Werts einer privaten Variablen geben einen Fehler zurück. Der Benutzer kann jedoch Befehle ausführen, in denen eine private Variable verwendet wird, wenn die Befehle in der Sitzung geschrieben wurden, in der die Variable definiert wurde.
Erforderlich? false
Position? named
Standardwert Public
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false
-Confirm [<SwitchParameter>]
Fordert Sie vor der Ausführung des Befehls zur Bestätigung auf.
Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false
-WhatIf [<SwitchParameter>]
Beschreibt die Auswirkungen einer Ausführung des Befehls, ohne den Befehl tatsächlich auszuführen.
Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false
<CommonParameters>
Dieses Cmdlet unterstützt folgende allgemeine Parameter: "Verbose", "Debug",
"ErrorAction", "ErrorVariable", "WarningAction", "WarningVariable",
"OutBuffer" und "OutVariable". Weitere Informationen
erhalten Sie mit dem Befehl "get-help about_commonparameters".
# EINGABEN
System.Object
Sie können ein Objekt, das den Wert der Variablen darstellt, über die Pipeline an Set-Variable übergeben.
# AUSGABEN
Keiner oder System.Management.Automation.PSVariable
Wenn Sie den PassThru-Parameter verwenden, generiert Set-Variable ein System.Management.Automation.PSVariable-Objekt, das die neue oder geänderte Variable darstellt. Andernfalls wird von diesem Cmdlet keine Ausgabe generiert.
# HINWEISE
# BEISPIEL 1
C:\PS>set-variable -name desc -value "A description"
C:\PS>get-variable -name desc
Beschreibung
-----------
Mit diesen Befehlen wird der Wert der Variablen "desc" auf "A description" festgelegt und dann der Wert der Variablen abgerufen.
# BEISPIEL 2
C:\PS>set-variable -name processes -value (Get-Process) -option constant -scope global -description "All processes" -passthru | format-list -property *
Beschreibung
-----------
Mit diesem Befehl wird eine globale schreibgeschützte Variable erstellt, die alle Prozesse auf dem System enthält, und anschließend werden alle Eigenschaften der Variablen angezeigt.
In dem Befehl wird die Variable mit dem Cmdlet "Set-Variable" erstellt. Mit dem PassThru-Parameter wird ein Objekt erstellt, das die neue Variable darstellt, und mit dem Pipelineoperator (|) wird das Objekt an das Cmdlet "Format-List" übergeben. Der Property-Parameter von Format-List mit dem Wert für alle (*) wird verwendet, 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 Zeichenfolge "Get-Process".
# BEISPIEL 3
C:\PS># set-variable -name counter -visibility private
C:\PS> new-variable -name counter -visibility public -value 26
C:\PS> $counter
26
C:\PS> get-variable c*
Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}
Counter 26
C:\PS> set-variable -name counter -visibility private
C:\PS> get-variable c*
Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}
C:\PS> $counter
"Cannot access the variable '$counter' because it is a private variable"
C:\PS> .\use-counter.ps1
Commands completed successfully.
Beschreibung
-----------
Dieser Befehl veranschaulicht, wie der Wert für die Sichtbarkeit einer Variablen in "Private" geändert wird. Diese Variable kann von Skripts mit den erforderlichen Berechtigungen gelesen und geändert werden, sie ist jedoch für den Benutzer nicht sichtbar.
Die Beispielausgabe veranschaulicht den Unterschied im Verhalten von öffentlichen und privaten Variablen.
VERWANDTE LINKS
Online version: http://go.microsoft.com/fwlink/?LinkID=113401 (möglicherweise auf Englisch)
Get-Variable
New-Variable
Remove-Variable
Clear-Variable
C:\Windows>powershell get-help Remove-Variable -full
ColorConsole [Version 1.7.1000] PowerShell 2.0-Export
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2014 Microsoft Corporation.