PowerShell utiliser xcopy, robocopy ou la copie de l'élément de
La raison pour la commutation de fichiers par lots pour des scripts powershell est d'améliorer la vérification des erreurs du processus. L'applet de commande pour la copie d'avoir des avantages à cet égard?
Si un lot de fichier existe déjà qui utilise xcopy pour copier des fichiers par nom de fichier individuel est-il un avantage à la conversion de la syntaxe à copier-élément?
Quels sont les avantages de l'utilisation de robocopy, xcopy et la copie de l'élément (par rapport à l'autre)? Par exemple ne robocopy ont un avantage lorsque l'on travaille avec un grand nombre de petits fichiers sur un réseau fiable. Si ce script doit être exécuté simultanément sur des centaines d'ordinateurs pour copier des centaines de fichiers pour chacun d'entre eux sera l'impact sur la prise de décision? La décision doit être porté principalement sur les autorisations des fichiers?
C'est trop vaste comme il est. Nous ne savons pas ce que vous vous déplacez, combien. Il y a beaucoup de différences, et vous auriez presque toujours utiliser xcopy/robocopy sur la base de la copie de l'élément pour les traitements par lots.
Alors que le titre est ambigu, le post est assez évidemment demander si il doit convertir la
xcopy <source> <dest> <options>
dans son fichier de commandes pour le PS natif Copy-Item
applet de commande, ou tout simplement le laisser tel quel. Nous avons besoin de plus d'info, mais je sens que les commentaires et les votes contre sont trop sévères sur cet un.La questions est édité. "Tout dépend de ce que vous voulez faire" est juste compte tenu de la façon dont ma question était formulée. Mais le point de la question était de savoir ce dont il dépend.
OriginalL'auteur Adam | 2014-12-05
Vous devez vous connecter pour publier un commentaire.
Le principal avantage est juste que vous pouvez envoyer des objets à
Copy-Item
par l'intermédiaire d'un tuyau à la place des chaînes ou des formats de noms de fichiers. De sorte que vous pouvez faire:C'est un mauvais exemple (vous pouvez le faire avec
Copy-Item -Filter
), mais c'est facile de venir avec à la volée. Il est assez fréquent que lorsque l'on travaille avec des fichiers jusqu'à la fin avec un pipeline deGet-ChildItem
, et personnellement, j'ai tendance à faire beaucoup simplement en raison de la-Recurse -Include
bug avecRemove-Item
.Vous bénéficiez également de PowerShell est de recouvrement d'erreur, les paramètres spéciaux comme
-Passthru
,-WhatIf
,-UseTransaction
, et tous les paramètres communs.Copy-Item -Recurse
peut reproduire certains de xcopy de l'arbre de la copie de capacités, mais il est assez dépouillée.Maintenant, si vous avez besoin de maintenir Acl, de la propriété, de l'audit, et autres, alors
xcopy
ourobocopy
sont probablement va être beaucoup plus facile parce que la fonctionnalité est intégrée. Je ne suis pas sûr de savoir commentCopy-Item
poignées de la copie des fichiers chiffrés et non chiffrés emplacements (xcopy a une capacité à faire), et je ne crois pasCopy-Item
prend en charge la gestion de l'attribut archive directement.Si c'est la vitesse que vous cherchez, alors je suppose que xcopy et robocopy allait gagner. Le code managé a plus de frais généraux en général. Xcopy et robocopy offrent également beaucoup plus de contrôle sur la façon dont ils fonctionnent bien avec le réseau.
Le bug avec Remove-item n'est toujours pas résolu, même dans le Chic v5. MME site dit: "Lorsqu'il est utilisé avec le paramètre Inclure, le Recurse paramètre peut ne pas supprimer tous les enfants de répertoires ou de tous les éléments enfants. C'est un problème connu; comme une solution de contournement, essayez de tuyauterie résultats de la Get-ChildItem -Recurse applet de commande dans la cmdlet Remove-Item, comme décrit dans l'Exemple 4, à ce sujet". technet.microsoft.com/en-us/library/hh849765.aspx
OriginalL'auteur Bacon Bits