Der Grund für den Wechsel von Batch-Dateien zu Powershell-Skripten besteht darin, die Fehlerprüfung des Prozesses zu verbessern. Hat das Cmdlet zum Kopieren diesbezüglich Vorteile?
Wenn bereits eine Stapeldatei existiert, die xcopy verwendet, um Dateien einzeln nach Dateiname zu kopieren, gibt es einen Vorteil, die Syntax in copy-item umzuwandeln?
Was sind die Vorteile von robocopy, xcopy und copy-item (im Vergleich zueinander)? Zum Beispiel hat robocopy einen Vorteil, wenn Sie mit einer großen Anzahl von kleinen Dateien über ein zuverlässiges Netzwerk arbeiten. Wenn dieses Skript gleichzeitig auf hunderten von Computern ausgeführt werden soll, um Hunderte von Dateien auf jeden von ihnen zu kopieren, beeinflusst dies die Entscheidung? Sollte sich die Entscheidung hauptsächlich auf die Berechtigungen der Dateien konzentrieren?
Der Hauptvorteil besteht lediglich darin, dass Sie Objekte über eine Pipe an Copy-Item
senden können, anstatt an Strings oder Filespecs. Sie könnten also tun:
Das ist ein schlechtes Beispiel (das könntest du mit Copy-Item -Filter
machen), aber es ist einfach, es spontan zu finden. Es ist ziemlich normal, wenn man mit Dateien arbeitet, die zu einer Pipeline von Get-ChildItem
führen, und ich persönlich tendiere dazu, dies nur wegen des -Recurse -Include
Bugs mit Remove-Item
zu tun.
Sie erhalten auch die Fehlerbereinigung von PowerShell, spezielle Parameter wie -Passthru
, -WhatIf
, -UseTransaction
und alle üblichen Parameter. Copy-Item -Recurse
kann einige der Kopierfunktionen von xcopy replizieren, aber es ist ziemlich einfach.
Nun, wenn Sie ACLs, Besitzrechte, Auditing und ähnliches pflegen müssen, dann werden xcopy
oder robocopy
wahrscheinlich viel einfacher sein, da diese Funktionalität eingebaut ist. Ich bin mir nicht sicher, wie Copy-Item
behandelt das Kopieren von verschlüsselten Dateien an unverschlüsselte Speicherorte (xcopy hat dazu einige Möglichkeiten), und ich glaube nicht, dass Copy-Item
die direkte Verwaltung des Archivattributs unterstützt.
Wenn es die Geschwindigkeit ist, die Sie suchen, dann würde ich vermuten, dass xcopy und robocopy gewinnen würden. Verwalteter Code hat im Allgemeinen einen höheren Overhead. Xcopy und Robocopy bieten auch viel mehr Kontrolle darüber, wie gut sie mit dem Netzwerk arbeiten.
Tags und Links powershell copy-item xcopy