Y a-t-il un moyen facile de vérifier que tous les fichiers ont été copiés correctement lors de l'appel de copie-élément? J'ai pensé à utiliser la somme de contrôle sur tous les fichiers, mais j'imagine que PowerShell (V2) aurait déjà quelque chose et je ne le trouve pas. P>
5 Réponses :
Non Il n'y a pas et voici pourquoi. L'élément de copie est une cmdlet générique qui fonctionne pour tous les fournisseurs d'espace de noms. Donc, les éléments copiés peuvent être des fichiers ou des paramètres de registre, ou des sections de configuration IIS, etc. Vérification d'une copie de fichier est un peu différente de la vérification d'une copie des paramètres de registre. P>
mise à jour: Comme indiqué par @Dave_s, le commutateur de vérification de la commande XCopy n'est pas le type de vérification que vous recherchez. P>
Si vous copiez des fichiers texte, vous pouvez utiliser le commandement de la commande PowerShell Si vous copiez des fichiers binaires, vous pouvez utiliser la commande system comparer-objet CODE>. P>
fc.exe code> avec / b strong> interrupteur. p>
Cette réponse est maintenant obsolète. PowerShell a eu la cmdlet Get-FileHash depuis un certain temps et il s'agit d'une méthode efficace et efficace d'utilisation de méthodes courantes (Hash de cryptage) pour confirmer les fichiers ont été copiés correctement. Ceci est la bonne réponse Stackoverflow.com/a/29634939/704977
Je sais que c'est un vieux fil, mais je pensais poster cela juste au cas où quelqu'un d'autre la lit ... The / V Commutateur ne vérifie pas les données! Cela garantit simplement que la copie est lisible. Voir http://support.microsoft.com/kb/126457 pour plus de détails. P>
C'est un lien mort maintenant. Pouvez-vous mettre à jour la réponse avec Détail de ce que le commutateur / V s'applique aussi?
Ma solution préférée actuelle est XCopy en combinaison avec un audit HASHDEEP. Peut être emballé ensemble dans un petit fichier chauve-souris. P>
Juste une mise à jour, PowerShell V4 inclut J'utilise cette réponse pour venir avec le Suivant. P>
get-filehash code> qui peut être utilisé pour vérifier qu'un fichier a été copié avec succès. Si le hachage est le même, le fichier a été copié avec succès. Lien vers Bibliothèque TechNet . P>
(Get-Childitem -File -Path C: \ Files -Recurse) .fulname | foreach {get-filehash $ _ -algorithm md5} code> peut également être canalisé dans l'exportation-CSV pour comparer facilement les hachages de fichiers. P>
Downvote pour une "algorithme" mal orthographique et ajout de 5 minutes à comprendre ce qui ne va pas avec PowerShell. : P
Revenir au commentaire, au moins j'utilise des noms PARAM complexes! Au lieu du sténographie -alg code>
J'ai trouvé (get-filehash $ file_path) .HASH a travaillé efficacement. Pas besoin d'épeler l'algorithme du tout :)
Vous pouvez utiliser -verbose p>
copy-item -path $ source-destination $ destination -recurse -force -verbose code> p> p>