Anbietername

FileSystem

Laufwerke

C, D

Kurzbeschreibung

Bietet Zugriff auf Dateien und Verzeichnisse.

Ausführliche Beschreibung

Mit dem Windows PowerShell-FileSystem-Anbieter können Sie Dateien und Verzeichnisse in Windows PowerShell abrufen, hinzufügen, ändern, entfernen und löschen.

Der FileSystem-Anbieter macht Windows PowerShell-Laufwerke verfügbar, die den auf dem Computer konfigurierten logischen Laufwerken entsprechen, einschließlich der Laufwerke, die Netzwerkfreigaben zugeordnet sind. Ein Computer mit einem Diskettenlaufwerk, einem Festplattenlaufwerk und einem zugeordneten freigegebenen Verzeichnis im Netzwerk enthält beispielsweise die Laufwerke "A", "C" und "Z". Der FileSystem-Anbieter macht Windows PowerShell-Laufwerke verfügbar, die "A", "C" und "Z" direkt entsprechen, wodurch Sie aus Windows PowerShell auf diese Laufwerke verweisen können. Geben Sie zum Verweisen auf Laufwerk "C" wie im folgenden Beispiel "C:" an:

Get-ChildItem c:

Mit dem Befehl wird der gesamte Inhalt des Laufwerks "C" zurückgegeben, einschließlich der Dateien und Verzeichnisse. Wenn Sie über den FileSystem-Anbieter auf ein bestimmtes Verzeichnis oder eine bestimmte Datei verweisen, müssen Sie die erforderlichen Informationen zum Identifizieren des Verzeichnisses bzw. der Datei angeben. Dies bedeutet, dass in einigen Fällen ein vollqualifizierter Name bereitgestellt werden muss. Ein vollqualifizierter Name enthält den Laufwerknamen (zusammen mit einem Doppelpunkt), alle Verzeichnis- und Unterverzeichnisnamen sowie ggf. den Dateinamen. Im folgenden Beispiel wird beispielsweise der vollqualifizierte Name für die Datei "Shell.dll" dargestellt, die im Unterverzeichnis "System32" des Windows-Verzeichnisses auf Laufwerk C gespeichert ist:

c:\windows\system32\shell.dll

Die Trennung der einzelnen Elemente des vollqualifizierten Namens erfolgt durch einen umgekehrten Schrägstrich (\). Windows PowerShell lässt jedoch auch die Verwendung eines normalen Schrägstrichs (/) zu, um die Konsistenz mit einer Vielzahl anderer Shells zu gewährleisten.

In einigen Fällen muss beim Verweisen auf eine Datei oder ein Verzeichnis kein vollqualifizierter Name angegeben werden. Wenn Sie beispielsweise auf eine Datei am aktuellen Arbeitsspeicherort zugreifen möchten, müssen Sie nur den Dateinamen bereitstellen. Wenn der aktuelle Arbeitsspeicherort "C:\Windows" lautet, können Sie mit dem folgenden Befehl eine Liste aller DLL-Dateien in diesem Verzeichnis anzeigen:

Get-ChildItem *.dll

Wenn Sie in einem anderen Arbeitsverzeichnis als "c:\windows" arbeiten, z. B. "c:\Programme\Windows PowerShell", muss der Befehl u. U. den vollqualifizierten Namen enthalten:

Get-ChildItem c:\windows\*.dll

In einigen Fällen sind auch relative Verweise auf einen Speicherort möglich. Wenn der Arbeitsspeicherort "c:\windows" ist und eine Liste der DLL-Dateien im Verzeichnis "c:\windows\system32" angezeigt werden soll, können Sie den folgenden Befehl angeben:

Get-ChildItem .\system32\*.dll

Der Punkt vor "\system32" stellt den aktuellen Arbeitsspeicherort dar.

In einigen Situationen kann sich der aktuelle Arbeitsspeicherort auf einem anderen Laufwerk als einem FileSystem-Laufwerk befinden. Wenn dies der Fall ist, müssen Sie im Verweis immer den Namen des Ziellaufwerks angeben. Angenommen der aktuelle Arbeitsspeicherort ist das Laufwerk "env:". Wenn der Inhalt des Laufwerks "C" angezeigt werden soll, geben Sie den folgenden Befehl an:

Get-ChildItem c:

Beispiele

Navigieren im Dateisystem

-------------------------- BEISPIEL 1 --------------------------

Mit diesem Befehl wird der aktuelle Speicherort abgerufen:

get-location

Das Cmdlet "Get-Location" umfasst die Funktionen von Befehlen wie "cd" in der Windows-Eingabeaufforderung und "pwd" in UNIX. Weitere Informationen erhalten Sie mit folgendem Befehl: get-help get-location

-------------------------- BEISPIEL 2 --------------------------

Mit diesem Befehl wird der aktuelle Speicherort festgelegt:

set-location C:

Abrufen von Informationen über Dateien und Verzeichnisse

-------------------------- BEISPIEL 1 --------------------------

Mit diesem Befehl werden alle Dateien und Unterverzeichnisse im aktuellen Verzeichnis abgerufen:

get-childitem

Mit dem Cmdlet "Get-ChildItem" werden standardmäßig keine rekursiven Vorgänge ausgeführt. Wenn beim Ausführen dieses Befehls Dateien und Ordner im aktuellen Verzeichnis vorhanden sind, werden ein System.IO.FileInfo-Objekt und ein System.IO.DirectoryInfo-Objekt zurückgegeben.

-------------------------- BEISPIEL 2 --------------------------

Mit Get-ChildItem werden alle Dateien und Unterverzeichnisse im aktuellen Verzeichnis abgerufen:

get-childitem | where-object {!$_.psiscontainer}

Er übergibt die Ergebnisse über die Pipeline an Where-Object, wodurch die PSIsContainer-Eigenschaft untersucht und nur die Übertragung von Objekten über die Pipeline zugelassen wird, die keine (!) Container sind.

-------------------------- BEISPIEL 3 --------------------------

Mit Get-ChildItem werden alle Dateien und Unterverzeichnisse im aktuellen Verzeichnis abgerufen. Er übergibt die Ergebnisse über die Pipeline an Where-Object, wodurch die PSIsContainer-Eigenschaft untersucht und nur die Übertragung von Objekten über die Pipeline zugelassen wird, die Container darstellen.

get-childitem | where-object {$_.psiscontainer}

-------------------------- BEISPIEL 4 --------------------------

Mit Get-ChildItem werden alle Dateien und Unterverzeichnisse im aktuellen Verzeichnis abgerufen:

get-item -path a | format-list *

Er übergibt die Ergebnisse über die Pipeline an das Cmdlet "Where-Object", wodurch die PSIsContainer-Eigenschaft untersucht und nur die Übertragung von Objekten über die Pipeline zugelassen wird, die Container darstellen.

-------------------------- BEISPIEL 5 --------------------------

Dieser Befehl verwendet das Cmdlet "Get-Item", um Informationen über die Datei "Test.txt" abzurufen:

get-item -path test.txt | format-list *

Mit dem Cmdlet "Format-List" werden alle Eigenschaften des erhaltenen Objekts angezeigt.

Kopieren von Dateien und Verzeichnissen

-------------------------- BEISPIEL 1 --------------------------

Dieser Befehl kopiert die Datei "A.txt" aus dem Verzeichnis "C:\A" in das Verzeichnis "C:\A\Bb".

copy-item -path C:\a\a.txt -destination C:\a\bb\a.txt

Dabei werden die Dateien im Zielverzeichnis überschrieben, ohne dass zur Bestätigung des Vorgangs aufgefordert wird.

-------------------------- BEISPIEL 2 --------------------------

Dieser Befehl kopiert alle Dateien im Verzeichnis "C:\A\Bb", die über die Dateinamenerweiterung ".txt" verfügen, in das Verzeichnis "C:\A\Cc\Ccc\":

copy-item -path C:\a\bb\*.txt -destination C:\a\cc\ccc\

Dabei werden die ursprünglichen Namen der Dateien beibehalten. Durch den Befehl werden die vorhandenen Dateien im Zielverzeichnis überschrieben, ohne dass zur Bestätigung des Vorgangs aufgefordert wird.

-------------------------- BEISPIEL 3 --------------------------

Kopiert alle Verzeichnisse und Dateien im Verzeichnis "C:\a" in das Verzeichnis "C:\c". Wenn eines der zu kopierenden Verzeichnisse bereits im Zielverzeichnis vorhanden ist, tritt beim Ausführen des Befehls ein Fehler auf, es sei denn, der Force-Parameter ist angegeben.

copy-item -path C:\a\* -destination C:\c -recurse

Verschieben von Dateien und Verzeichnissen

-------------------------- BEISPIEL 1 --------------------------

Dieser Befehl verschiebt die Datei "C.txt" im Verzeichnis "C:\A" in das Verzeichnis "C:\A\Aa".

move-item -path C:\a\c.txt -destination C:\a\aa

Vorhandene Dateien mit identischem Namen werden vom Befehl nicht automatisch überschrieben. Um das Überschreiben einer vorhandenen Datei durch das Cmdlet zu erzwingen, geben Sie den Force-Parameter an.

-------------------------- BEISPIEL 2 --------------------------

Mit diesem Befehl wird das Verzeichnis "C:\A" mit seinem gesamten Inhalt in das Verzeichnis "C:\B" verschoben:

move-item -path C:\a -destination C:\b

Ein Verzeichnis kann nicht verschoben werden, wenn es sich dabei um den aktuellen Speicherort handelt.

Verwalten von Dateiinhalten

-------------------------- BEISPIEL 1 --------------------------

Mit diesem Befehl wird die Zeichenfolge "test content" an die Datei "Test.txt" angefügt:

add-content -path test.txt -value "test content"

Der in der Datei "Test.txt" vorhandene Inhalt wird nicht gelöscht.

-------------------------- BEISPIEL 2 --------------------------

Mit diesem Befehl wird der Inhalt der Datei "Test.txt" abgerufen und in der Konsole angezeigt:

get-content -path test.txt

Sie können den Inhalt der Datei über die Pipeline an ein anderes Cmdlet übergeben. Mit dem folgenden Befehl wird beispielsweise der Inhalt der Datei "Test.txt" gelesen und als Eingabe an das Cmdlet "ConvertTo-HTML" übergeben: get-content -path test.txt | convertto-html

-------------------------- BEISPIEL 3 --------------------------

Mit diesem Befehl wird der Inhalt der Datei "Test.txt" durch die Zeichenfolge "test content" ersetzt:

set-content -path test.txt -value "test content"

Dieser Befehl überschreibt den Inhalt der Datei "Test.txt". Mit dem Value-Parameter des Cmdlets "New-Item" können Sie einer Datei beim Erstellen Inhalt hinzufügen.

Verwalten von Sicherheitsbeschreibungen

-------------------------- BEISPIEL 1 --------------------------

Dieser Befehl gibt ein System.Security.AccessControl.FileSecurity-Objekt zurück:

get-acl -path test.txt | format-list -property *

Um weitere Informationen zu diesem Objekt zu erhalten, übergeben Sie den Befehl über die Pipeline an das Cmdlet "Get-Member". Oder lesen Sie die Informationen zur "FileSecurity-Klasse" in der MSDN Library (Microsoft Developer Network) unter "https://go.microsoft.com/fwlink/?LinkId=145718" (möglicherweise auf Englisch).

-------------------------- BEISPIEL 2 --------------------------

Dieser Befehl gibt ein System.Security.AccessControl.DirectorySecurity-Objekt zurück:

get-acl -path test_directory | format-list -property *

Um weitere Informationen zu diesem Objekt zu erhalten, übergeben Sie den Befehl über die Pipeline an das Cmdlet "Get-Member". Oder lesen Sie die Informationen zur "DirectorySecurity-Klasse" in der MSDN Library unter "https://go.microsoft.com/fwlink/?LinkId=145736" (möglicherweise auf Englisch).

Erstellen von Dateien und Verzeichnissen

-------------------------- BEISPIEL 1 --------------------------

Mit diesem Befehl wird das Verzeichnis "Logfiles" auf Laufwerk "C" erstellt:

new-item -path c:\ -name logfiles -type directory

-------------------------- BEISPIEL 2 --------------------------

Mit diesem Befehl wird die Datei "Log2.txt" im Verzeichnis "C:\Logfiles" erstellt und die Zeichenfolge "test log" an die Datei angefügt:

new-item -path c:\logfiles -name log.txt -type file

-------------------------- BEISPIEL 3 --------------------------

Erstellt eine Datei mit dem Namen "Log2.txt" im Verzeichnis "C:\logfiles" und fügt die Zeichenfolge "test log" an die Datei an.

new-item -path c:\logfiles -name log2.txt -type file -value "test log"

Umbenennen von Dateien und Verzeichnissen

-------------------------- BEISPIEL 1 --------------------------

Mit diesem Befehl wird die Datei "A.txt" im Verzeichnis "C:\A" in "B.txt" umbenannt:

rename-item -path c:\a\a.txt -newname b.txt

-------------------------- BEISPIEL 2 --------------------------

Mit diesem Befehl wird das Verzeichnis "C:\A\Cc" in "C:\A\Dd" umbenannt:

rename-item -path c:\a\cc -newname dd

Löschen von Dateien und Verzeichnissen

-------------------------- BEISPIEL 1 --------------------------

Mit diesem Befehl wird die Datei "Test.txt" im aktuellen Verzeichnis gelöscht:

remove-item -path test.txt

-------------------------- BEISPIEL 2 --------------------------

Mit diesem Befehl werden alle Dateien im aktuellen Verzeichnis gelöscht, die die Dateinamenerweiterung ".xml" aufweisen:

remove-item -path *.xml

Starten eines Programms durch Aufrufen einer zugeordneten Datei

-------------------------- BEISPIEL 1 --------------------------

Im ersten Befehl werden mit dem Cmdlet "Get-Service" Informationen über lokale Dienste abgerufen.

Er übergibt die Informationen über die Pipeline an das Cmdlet "Export-Csv" und speichert diese Informationen dann in der Datei "Services.csv".

Der zweite Befehl verwendet Invoke-Item, um die Datei "Services.csv" in dem Programm zu öffnen, das Dateien mit der Erweiterung ".csv" zugeordnet ist:

get-service | export-csv -path services.csv

invoke-item -path services.csv

Dynamische Parameter

Bei dynamischen Parametern handelt es sich um Cmdlet-Parameter, die von einem Windows PowerShell-Anbieter hinzugefügt werden und nur verfügbar sind, wenn das Cmdlet auf dem Anbieterlaufwerk verwendet wird.

Encoding <Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding>

Value Description

Unknown

Der Codierungstyp ist unbekannt oder ungültig. Die Daten können als Binärdaten behandelt werden.

String

Der Codierungstyp für eine Zeichenfolge wird verwendet.

Unicode

Codiert im Format UTF-16 mit der Little-Endian-Bytereihenfolge.

Byte

Codiert eine Folge von Zeichen in eine Folge von Bytes.

BigEndianUnicode

Codiert im Format UTF-16 mit der Big-Endian-Bytereihenfolge.

UTF8

Codiert im Format UTF-8.

UTF7

Codiert im Format UTF-7.

ASCII

Verwendet die Codierung für den ASCII-Zeichensatz (7-Bit).

Unterstützte Cmdlets

Delimiter <System.String>

Gibt das beim Lesen der Datei zu verwendende Trennzeichen an. Der Standardwert ist "\n" (Zeilenende).

Unterstützte Cmdlets

Wait <System.Management.Automation.SwitchParameter>

Wartet auf das Anfügen von Inhalt an die Datei. Wenn Inhalt an die Datei angefügt wird, wird der angefügte Inhalt zurückgegeben. Wenn der Inhalt geändert wurde, wird die gesamte Datei zurückgegeben.

Während des Wartens überprüft Get-Content die Datei einmal pro Sekunde, bis Sie den Vorgang unterbrechen, z. B. durch Drücken von STRG+C.

Unterstützte Cmdlets

Siehe auch




Inhaltsverzeichnis