Anbietername
Variable
Laufwerke
Variable:
Kurzbeschreibung
Bietet Zugriff auf die Windows PowerShell-Variablen und deren Werte.
Ausführliche Beschreibung
Mit dem Windows PowerShell-Variable-Anbieter können Sie Windows PowerShell-Variablen in der aktuellen Konsole abrufen, hinzufügen, ändern, entfernen und löschen.
Der Windows PowerShell-Variable-Anbieter unterstützt die von Windows PowerShell erstellten Variablen, einschließlich der automatisch erstellten Variablen, Einstellungsvariablen und der vom Benutzer erstellten Variablen.
Der Variable-Anbieter ist ein flacher Namespace, der nur aus den Variablenobjekten besteht. Die Variablen verfügen über keine untergeordneten Elemente.
Die meisten Variablen sind Instanzen der System.Management.Automation.PSVariable-Klasse. Es gibt jedoch einige Ausnahmen. Die Variable "?" ist beispielsweise ein Element der QuestionMarkVariable-Klasse, und die Variable "MaximumVariableCount" ist ein Element der SessionStateCapacityVariable-Klasse.
Der Variable-Anbieter macht seinen Datenspeicher auf dem Laufwerk "Variable:" verfügbar. Wenn Sie mit Variablen arbeiten möchten, können Sie den Speicherort in das Laufwerk "Variable:" ("set-location variable:") ändern oder auf einem beliebigen anderen Windows PowerShell-Laufwerk arbeiten. Wenn Sie von einem anderen Speicherort aus auf eine Variable verweisen möchten, geben Sie den Laufwerknamen ("Variable:") im Pfad an.
Windows PowerShell bietet eine Reihe von Cmdlets, die speziell für das Anzeigen und Ändern von Variablen entwickelt wurden:
-- Get-Variable
-- New-Variable
-- Set-Variable
-- Remove-Variable
-- Clear-Variable
Wenn Sie diese Cmdlets verwenden, müssen Sie das Laufwerk "Variable:" nicht im Namen angeben.
Der Variable-Anbieter unterstützt mit Ausnahme von Invoke-Item alle Cmdlets, deren Namen das Substantiv "Item" (Item-Cmdlets) enthalten. Der Variable-Anbieter unterstützt das Cmdlet "Get-Content" und das Cmdlet "Set-Content". Er unterstützt jedoch keine Cmdlets, die das Substantiv "ItemProperty" enthalten (die ItemProperty-Cmdlets), sowie keinen Filter-Parameter in Cmdlets.
Mit dem Windows PowerShell-Ausdrucksparser können Sie die Werte von Variablen erstellen, anzeigen und ändern, ohne dass Sie die Cmdlets verwenden müssen. Wenn Sie direkt mit Variablen arbeiten, kennzeichnen Sie den Namen mit einem Dollarzeichen ($) als Variable, und verwenden Sie den Zuweisungsoperator (=), um ihren Wert festzulegen bzw. zu ändern. Mit "$p = Get-Process" wird beispielsweise die Variable "p" erstellt, und die Ergebnisse des Befehls "Get-Process" werden darin gespeichert.
Alle Änderungen an den Variablen wirken sich nur auf die aktuelle Sitzung aus. Wenn Sie die Änderungen speichern möchten, fügen Sie sie dem Windows PowerShell-Profil hinzu, oder verwenden Sie Export-Console, um die aktuelle Konsole zu speichern.
Beispiele
Wechseln zum Laufwerk "Variable:"
Anzeigen der Werte von Variablen
-------------------------- BEISPIEL 1 --------------------------
Mit diesem Befehl rufen Sie die Liste aller Variablen und der zugehörigen Werte in der aktuellen Sitzung ab. Sie können diesen Befehl von einem beliebigen Windows PowerShell-Laufwerk aus verwenden.
get-childitem -path variable:
-------------------------- BEISPIEL 2 --------------------------
Mit diesem Befehl werden die Variablen abgerufen, deren Namen mit "max" beginnen. Sie können diesen Befehl von einem beliebigen Windows PowerShell-Laufwerk aus verwenden.
get-childitem -path variable:max*
Wenn Sie sich auf dem Laufwerk "Variable:" befinden, können Sie den Laufwerknamen im Pfad auslassen.
-------------------------- BEISPIEL 3 --------------------------
Mit diesem Befehl wird der Wert der Variablen "WhatIfPreference" abgerufen. Dazu wird der Befehl in der Befehlszeile eingegeben.
Dem Namen der Variablen ist ein Dollarzeichen ($) vorangestellt, wodurch sie als Variable gekennzeichnet wird. Der Name des Laufwerks "Variable:" ist nicht angegeben.
$WhatIfPreference
-------------------------- BEISPIEL 4 --------------------------
In diesem Befehl wird der LiteralPath-Parameter von Get-ChildItem verwendet, um den Wert der Variablen "?" vom Laufwerk "Variable:" abzurufen. Get-ChildItem löst keine Platzhalter in den Werten des LiteralPath-Parameters auf.
get-childitem -literalpath ?
Wenn der Wert einer Variablen mit einem Namen mit Sonderzeichen ohne ein Cmdlet angezeigt werden soll, geben Sie ein Dollarzeichen ($) und den Variablennamen ein. Wenn beispielsweise der Wert der Variablen "?" angezeigt werden soll, geben Sie "$?" ein.
-------------------------- BEISPIEL 5 --------------------------
Mit diesem Befehl werden die Variablen abgerufen, deren Options-Eigenschaft den Wert "ReadOnly" oder "Constant" aufweist.
get-childitem -path variable: | where-object {$_.options -match "Constant" -or $_.options -match "ReadOnly"} | format-list -property name, value, options
Erstellen einer neuen Variablen
-------------------------- BEISPIEL 1 --------------------------
Mit diesem Befehl wird die Variable "services" erstellt, und die Ergebnisse des Befehls "Get-Service" werden darin gespeichert. Da sich der aktuelle Speicherort auf dem Laufwerk "Variable:" befindet, ist der Wert des Path-Parameters ein Punkt (.), der den aktuellen Speicherort darstellt.
Mit den Klammern um den Befehl "Get-Service" wird sichergestellt, dass der Befehl vor dem Erstellen der Variablen ausgeführt wird. Ohne die Klammern ist der Wert der neuen Variablen eine Zeichenfolge von "Get-Service".
new-item -path . -name services -value (Get-Service)
Wenn Sie sich nicht auf dem Laufwerk "Variable:" befinden, geben Sie den Namen des Laufwerks "Variable:" im Pfad an.
-------------------------- BEISPIEL 2 --------------------------
Mit diesem Befehl wird die Variable "services" erstellt, und das Ergebnis des Befehls "Get-Service" wird darin gespeichert.
Im Befehl wird mit dem Dollarzeichen ($) eine Variable angegeben, und mit dem Zuweisungsoperator (=) wird das Ergebnis des Befehls "Get-Service" der neu erstellten Variablen zugewiesen.
$services = Get-Service
Wenn eine Variable ohne Wert erstellt werden soll, lassen Sie den Zuweisungsoperator aus.
Anzeigen der Eigenschaften und Methoden von Variablen
-------------------------- BEISPIEL 1 --------------------------
In diesem Befehl werden mit dem Cmdlet "Get-Item" alle Variablen abgerufen. Mit dem Pipelineoperator (|) werden die Ergebnisse an das Cmdlet "Get-Member" gesendet, wodurch die Methoden und Eigenschaften des Objekts angezeigt werden.
get-item -path variable:* | get-member
Wenn Sie eine Auflistung von Objekten (z. B. die Auflistung von Variablen auf dem Laufwerk "Variable:") über die Pipeline an Get-Member übergeben, wird von Get-Member jedes Objekt in der Auflistung einzeln ausgewertet, und es werden Informationen zu jedem erkannten Objekttyp zurückgegeben. Verwenden Sie zum Abrufen von Informationen über die Auflistung von Objekten auf dem Laufwerk "Variable:" den InputObject-Parameter von Get-Member. Beispiel: "get-member -inputobject (get-item variable:*)". Wenn Sie "InputObject" angeben, wird von Get-Member anstelle der Objekte in der Auflistung die Auflistung ausgewertet.
-------------------------- BEISPIEL 2 --------------------------
Mit diesem Befehl werden die Werte der Eigenschaften der Variablen "home" aufgelistet. Mit dem Cmdlet "Get-Item" wird ein Objekt abgerufen, das die Variable "home" darstellt. Die Ergebnisse werden mit dem Pipelineoperator (|) an den Befehl "Format-List" gesendet. Der Befehl "Format-List" verwendet den Property-Parameter mit dem Platzhalterzeichen (*), um die Werte aller Eigenschaften der Variablen "home" zu formatieren und anzuzeigen.
get-item variable:home | format-list -property *
Ändern der Eigenschaften einer Variablen
-------------------------- BEISPIEL 1 --------------------------
In diesem Befehl wird mit dem Cmdlet "Rename-Item" der Name der Variablen "a" in "processes" geändert.
rename-item -path variable:a -newname processes
-------------------------- BEISPIEL 2 --------------------------
In diesem Befehl wird mit dem Cmdlet "Set-Item" der Wert der Variablen "ErrorActionPreference" in "Stop" geändert.
set-item -path variable:ErrorActionPreference -value Stop
-------------------------- BEISPIEL 3 --------------------------
Mit diesem Befehl wird der Wert der Variablen "ErrorActionPreference" in "Stop" geändert.
Mit einem Dollarzeichen ($) wird eine Variable angegeben, und mit dem Zuweisungsoperator (=) wird der Wert zugewiesen.
$ErrorActionPreference = Stop
Kopieren einer Variablen
-------------------------- BEISPIEL 1 --------------------------
In diesem Befehl wird mit dem Cmdlet "Copy-Item" die Variable "processes" in "old_processes" kopiert. Dadurch wird eine neue Variable mit dem Namen "old_processes" erstellt, die denselben Wert wie die Variable "processes" aufweist.
copy-item -path variable:processes -destination variable:old_processes
Wenn der Befehl vom Laufwerk "Variable:" aus ausgegeben wird, können Sie den Laufwerknamen im Wert des Path-Parameters auslassen.
-------------------------- BEISPIEL 2 --------------------------
Mit diesem Befehl wird die Variable "processes" ohne ein Cmdlet in "old_processes" kopiert. Mit dem Dollarzeichen ($) werden Variablen gekennzeichnet, und mit dem Zuweisungsoperator wird "old_processes" der Wert von "$processes" zugewiesen.
$old_processes = $processes
Löschen einer Variablen
-------------------------- BEISPIEL 1 --------------------------
Mit diesem Befehl wird die Variable "serv" aus der aktuellen Sitzung gelöscht. Sie können diesen Befehl auf einem beliebigen Windows PowerShell-Laufwerk verwenden.
remove-variable -path variable:serv
-------------------------- BEISPIEL 2 --------------------------
Mit diesem Befehl werden alle Variablen aus der aktuellen Sitzung gelöscht, mit Ausnahme der Variablen, deren Options-Eigenschaft den Wert "Constant" aufweist. Ohne den Force-Parameter werden durch den Befehl keine Variablen gelöscht, deren Options-Eigenschaft den Wert "ReadOnly" aufweisen.
remove-item variable:* -force
Festlegen des Werts einer Variablen auf NULL
-------------------------- BEISPIEL 1 --------------------------
In diesem Befehl wird mit dem Cmdlet "Clear-Item" der Wert der Variablen "processes" in NULL geändert.
clear-item -path variable:processes
-------------------------- BEISPIEL 2 --------------------------
In diesem Befehl wird der Wert der Variablen "processes" gelöscht, indem dieser der Wert "NULL" zugewiesen wird. Der NULL-Wert wird mit der automatischen Variablen "$null" dargestellt.
$processes = $null
Siehe auch