Remove-Item, wenn Datei in PowerShell vorhanden ist
 
Als Administrator wäre eine unserer möglichen Aufgaben wahrscheinlich die Verwaltung von Dateien. Diese Situation tritt normalerweise auf, wenn wir mehrere Dateiserver verwalten.
Eine spezielle Aufgabe, die wir innerhalb des Servers erledigen können, ist das Kopieren von Dateien an einen anderen Ort, um vielleicht eine Kopie oder Spiegelung der Datei eines Unternehmens zu erstellen.
Was aber, wenn wir Massenkopien gleichzeitig durchführen müssen? Es besteht die Möglichkeit, dass wir beim Massenkopieren auch auf vorhandene Dateien am Zielort stoßen.
In diesem Artikel wird erläutert, wie Sie Dateien in großen Mengen kopieren, prüfen, ob sie im Zielordner vorhanden sind, und sie mit PowerShell entfernen.
Remove-Item, wenn die Datei nach Copy-Item in PowerShell existiert
Für diesen Artikel konzentrieren wir uns auf und verwenden die Befehle Get-ChildItem, Remove-Item und Copy-Item. Wir teilen den Skriptblock, in dem wir Dateien in großen Mengen kopieren und prüfen können, ob sie im Zielordner vorhanden sind, und wenn sie vorhanden sind, wird die Datei entfernt und überschrieben.
Deklarieren Sie also Ihre Quell- und Zielordner wie unten, und lassen Sie uns einen Drilldown durchführen und den Skriptblock im Detail besprechen.
Beispielcode:
$sourceFolder = "C:\Temp"
$destFolder = "C:\PS"
Get-ChildItem $sourceFolder\Scripts -Recurse | %{
    Remove-Item $_ -ErrorAction Ignore
  	Copy-Item -Path $_.FullName -Destination $destFolder
}
- 
Deklarieren Sie zuerst Ihre Quell- und Zielordner in jeder Variablen wie unsere Variablen $sourceFolderund$destFolder.
- 
Als nächstes verwenden wir den Befehl Get-ChildItem, um alle Dateien im Ordner abzurufen und sie in einer Array-Liste zu platzieren. Der BefehlGet-ChildItemkann auch mehrere Ordner bedienen.Um nach mehreren Ordnern zu suchen, fügen Sie ein Komma (``) zwischen den Zielen ein, wie im folgenden Snippet. Get-ChildItem $sourceFolder\Scripts, $sourceFolder\Test
Der Parameter `-Recurse` wird verwendet, um nach Dateien zu suchen, die sich auch im Unterordner des übergeordneten Quellordners befinden.
- 
Anschliessend verwenden wir den Remove-Item-Befehl, um die bereits vorhandene Datei zu entfernen. Wie Sie sehen können, haben wir einen Parameter namens-ErrorActionverwendet, der unsere Aktionspräferenz festlegt, wenn ein Fehler aufgetreten ist.In diesem Fall existiert die Datei im Fehlerfall nicht in der Zieldatei. Unsere Aktionspräferenz ist auf Ignoriereneingestellt, wodurch der BefehlRemove-Itemignoriert wird, wenn ein Fehler aufgetreten ist, und die Skriptausführung in dieser Zeile fortgesetzt wird.Alternativ können wir diese Befehlszeile mit Aliasen wie dem folgenden Beispiel-Snippet verkürzen. rm yourfile.zip -ea ig
Kopieren Sie Dateien mit dem Befehl Move-Item
Alternativ zu Copy-Item können wir auch den Move-Item-Befehl verwenden. Der Befehl Move-Item prüft automatisch, ob die Datei im Zielordner existiert.
Der Befehl überspringt die Datei, wenn der Wert true ist. Das bedeutet, dass wir die Befehlszeile Remove-Item löschen können und ein kürzeres Skript haben, das in etwa so aussieht wie das Code-Snippet unten.
$sourceFolder = "C:\Temp"
$destFolder = "C:\PS"
Get-ChildItem $sourceFolder\Scripts -Recurse | %{
    Move-Item -Path $_.FullName -Destination $destFolder
}
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedInVerwandter Artikel - PowerShell File
- Wie man Dateien mit FTP in PowerShell hochlädt
- Wie man die Dateiversion in PowerShell erhält
- Wie man eine Textdatei mit Windows PowerShell erstellt
- So fügen Sie Daten mit PowerShell zu einer Datei hinzu
- Abfrage der letzten Schreibzeit der Datei in PowerShell
- CSV-Datei Zeile für Zeile in PowerShell lesen
