Bietet Zugriff auf Dateien und Verzeichnisse. (FileSystem)
ANBIETERNAME FileSystem LAUFWERKE C, DÜBERSICHTBietet Zugriff auf Dateien und Verzeichnisse.BESCHREIBUNGMit 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: FUNKTIONEN AUFGABEN AUFGABE: Navigieren im DateisystemBeispiele
BEISPIEL 1Mit 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-locationBEISPIEL 2Mit diesem Befehl wird der aktuelle Speicherort festgelegt: set-location C: AUFGABE: Abrufen von Informationen über Dateien und VerzeichnisseBEISPIEL 1Mit 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 2Mit 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 3Mit 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 4Mit 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 5Dieser 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. AUFGABE: Kopieren von Dateien und VerzeichnissenBEISPIEL 1Dieser 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 2Dieser 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 3Kopiert 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 AUFGABE: Verschieben von Dateien und VerzeichnissenBEISPIEL 1Dieser 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 2Mit 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. AUFGABE: Verwalten von DateiinhaltenBEISPIEL 1Mit 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 2Mit 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-htmlBEISPIEL 3Mit 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. AUFGABE: Verwalten von SicherheitsbeschreibungenBEISPIEL 1Dieser 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 "http://go.microsoft.com/fwlink/?LinkId=145718" (möglicherweise auf Englisch).BEISPIEL 2Dieser 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 "http://go.microsoft.com/fwlink/?LinkId=145736" (möglicherweise auf Englisch). AUFGABE: Erstellen von Dateien und VerzeichnissenBEISPIEL 1Mit diesem Befehl wird das Verzeichnis "Logfiles" auf Laufwerk "C" erstellt: new-item -path c:\ -name logfiles -type directoryBEISPIEL 2Mit 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 fileBEISPIEL 3Erstellt 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" AUFGABE: Umbenennen von Dateien und VerzeichnissenBEISPIEL 1Mit diesem Befehl wird die Datei "A.txt" im Verzeichnis "C:\A" in "B.txt" umbenannt: rename-item -path c:\a\a.txt -newname b.txtBEISPIEL 2Mit diesem Befehl wird das Verzeichnis "C:\A\Cc" in "C:\A\Dd" umbenannt: rename-item -path c:\a\cc -newname dd AUFGABE: Löschen von Dateien und VerzeichnissenBEISPIEL 1Mit diesem Befehl wird die Datei "Test.txt" im aktuellen Verzeichnis gelöscht: remove-item -path test.txtBEISPIEL 2Mit diesem Befehl werden alle Dateien im aktuellen Verzeichnis gelöscht, die die Dateinamenerweiterung ".xml" aufweisen: remove-item -path *.xml AUFGABE: Starten eines Programms durch Aufrufen einer zugeordneten DateiBEISPIEL 1Im 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 -Encoding <Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding> 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: Add-Content, Get-Content, Set-Content -Delimiter <System.String> Gibt das beim Lesen der Datei zu verwendende Trennzeichen an. Der Standardwert ist "\n" (Zeilenende). Unterstützte Cmdlets: Get-Content -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: Get-ContentHINWEISEVERWANDTE LINKS about_Providers C:\Windows>powershell get-help Function -full
Microsoft Windows [Version 10.0.19045.3693]
Copyright (c) 2023 Microsoft Corporation.
ColorConsole [Version 3.7.1000] PowerShell 2.0-Export