Verschieben von Dateien und Ordnern mit PowerShell
- Überprüfen Sie mit PowerShell, ob eine Datei oder ein Ordner vorhanden ist
- Dateien und Ordner mit PowerShell erstellen
- Verschieben von Dateien und Ordnern mit PowerShell
Das Verschieben von Dateien und Ordnern ist ein grundlegender Vorgang bei der Verwendung des Windows-Betriebssystems oder vielleicht eines anderen Betriebssystems. Wir können Dateien oder Ordner einzeln oder in großen Mengen übertragen, indem wir sie einfach per Drag & Drop auf unseren Bildschirm ziehen, aber wir müssen möglicherweise Skripte in Betracht ziehen, wenn wir nur viele bestimmte Dateien (wie Dateien mit bestimmten Dateiformaten) verschieben müssen.
In diesem Artikel werden mehrere wichtige Cmdlets beim Verschieben von Dateien und Verzeichnissen mithilfe von PowerShell-Skripts für die Massenwiederherstellung erläutert.
Überprüfen Sie mit PowerShell, ob eine Datei oder ein Ordner vorhanden ist
Der Befehl Test-Path
ist ein natives PowerShell-integriertes Cmdlet, das True
oder False
zurückgibt, je nachdem, ob eine Datei oder ein Verzeichnispfad vorhanden ist. Wir können den PowerShell-Befehl Test-Path
verwenden, wenn wir abfragen müssen, ob eine einzelne Datei existiert.
Erstellen Sie zur Demonstration eine Datei (test.txt)
in Ihrem aktuellen Arbeitsverzeichnis oder wählen Sie eine andere vorhandene Datei aus. Nachdem wir unsere Testdatei ausgewählt haben, führen Sie den folgenden Befehl aus und ersetzen den Pfad (C:\Temp\PS) und den Dateinamen (test.txt)
.
Der Befehl Test-Path
gibt bei Ausführung einen booleschen Wert zurück.
Befehl:
Test-Path C:\Temp\PS\test.txt
Im obigen Beispiel gibt der Befehl einen True
-Wert zurück, wenn die Datei (test.txt)
existiert. Andernfalls wird auf der Konsole ein False
-Wert angezeigt.
Dateien und Ordner mit PowerShell erstellen
Der Windows PowerShell-Befehl New-Item
erstellt sowohl Dateien als auch Verzeichnisse. Nachfolgend finden Sie zwei Beispiele für die Verwendung des Windows PowerShell-Cmdlets New-Item
zum Erstellen einer Datei und eines Ordners.
Befehl:
# Create a Folder
New-Item -ItemType 'Directory' -Name 'C:\Temp\PS'
# Create a File
New-Item -ItemType 'File' -Name 'Test.txt' -Path '.\PS'
Verschieben von Dateien und Ordnern mit PowerShell
Der PowerShell-Befehl zum Verschieben von Dateien, das Cmdlet Move-Item
, dient zum Verschieben einzelner Dateien oder Verzeichnisse und bietet Filterfunktionen, um Inhalte schnell von einem Ort zum nächsten zu übertragen.
Im folgenden Beispiel verschieben wir die zuvor erstellte Datei TestFile.txt
in das übergeordnete Verzeichnis. Verwenden Sie die Syntax ..
, um das übergeordnete Verzeichnis vom aktuellen Speicherort anzugeben, und verwenden Sie den Windows PowerShell-Befehl Move-Item
, um die Datei zu verschieben.
Befehl:
Move-Item -Path '.\TestFile.txt' -Destination '..'
Wir können nicht nur Dateien verschieben, sondern auch Ordner mit dem Befehl Move-Item
verschieben.
Zuerst müssen wir den Wert des Parameters -Path
für den Ordner angeben, den wir verschieben müssen. Beachten Sie, dass wir die Dateierweiterung aus dem Parameter -Path
entfernt haben.
Befehl:
Move-Item -Path '.\PSScripts` -Destination '..'
Vielleicht möchten wir unsere Dateien und Ordner in einen Ordner übertragen, der nicht direkt unserem Arbeitsverzeichnis übergeordnet ist. Dann können wir den Parameter -Destination
mit einem benutzerdefinierten Verzeichnis versehen.
Befehl:
Move-Item -Path '.\PSScripts` -Destination 'C:\Temp'
Wenn der im Parameter -Destination
angegebene Zielordner nicht existiert, wirft das Skript einen Fehler. Der Vorbehalt bei der Verwendung des Cmdlets Move-Item
besteht darin, dass es kein neues Verzeichnis erstellt, wenn das Zielverzeichnis nicht existiert.
Wir können unsere zuvor erwähnten Befehle Test-Path
und New-Item
verwenden, um dies zu beheben. Im folgenden Skriptblock prüfen wir zuerst den Zielpfad, um festzustellen, ob er existiert.
Wenn der Ordner nicht vorhanden ist, erstellt das Skript ihn zuerst. Nach der Erstellung wird nun die Datei- oder Ordnerübertragung initiiert.
Code:
$current_folder = "C:\Temp\PS"
$new_folder = "C:\PS\PSScripts"
if (Test-Path -path $new_folder) {
Move-Item -Path $current_folder -Destination $new_folder
}else{
New-Item -ItemType 'Directory' -Name $new_folder
Move-Item -Path $current_folder -Destination $new_folder
}
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn