Stellen Sie sicher, Kopieren von Dateien in Powershell
-
21-09-2019 - |
Frage
Gibt es eine einfache Möglichkeit, alle Dateien zu überprüfen, wurden korrekt kopiert, wenn Kopie-Element aufrufen? Ich dachte über die Prüfsumme für alle Dateien, aber ich könnte mir vorstellen, Powershell (v2) wäre schon etwas, und ich kann es nicht finden.
Lösung
Nein, es ist nicht und hier ist der Grund. Copy-Item ist ein generisches Cmdlets, die für alle Namespace-Anbieter arbeitet. So ist die Elemente Dateien könnten kopiert werden, oder Registrierungseinstellungen oder IIS Konfigurationsabschnitte usw. Überprüfen einer Dateikopie ist schon etwas anders als eine Kopie der Registry-Einstellungen zu überprüfen.
UPDATE: Wie von @Dave_S der Verifikationsschalter des XCOPY Befehl ist nicht die Art der Überprüfung der Sie suchen.
Wenn Sie Textdateien kopieren Sie die Powershell Compare-Object
Commandlet nutzen könnten.
Wenn Sie Binär-Dateien kopieren Sie das System fc.exe
Befehl mit / b Schalter verwenden könnte.
Andere Tipps
Ich weiß, es ist ein alter Thread, aber ich dachte, dass ich diese nur für den Fall schreiben würde sonst jemand es liest ... den Schalter / v NICHT überprüfen Sie die Daten! Es macht einfach sicher, dass die Kopie lesbar ist. Siehe http://support.microsoft.com/kb/126457 .
Meine aktuelle Liebling Lösung ist xcopy in Kombination mit einer hashdeep Prüfung. Kann zusammen in einer kleinen BAT-Datei gepackt werden.
Nur ein Update, Powershell v4 Get-FileHash
enthält, die verwendet werden können, um eine Datei zu überprüfen, wurde erfolgreich kopiert. Wenn der Hash gleich ist, wird die Datei erfolgreich kopiert wurde. Link zu TechNet-Bibliothek .
Ich verwende diese Antwort mit dem kommen folgen.
(Get-ChildItem -file -path c:\files -Recurse).FullName | foreach {get-filehash $_ -Algorithm md5}
kann auch in Export-CSV geleitet werden, um den Datei-Hashes zu leicht visuell vergleichen.