Comment faire une robocopie avec une progression enregistrée sur la console uniquement?


8

Je veux exécuter RoboCopy qui mettra à jour la console avec% progress mais n'encombrera pas le fichier journal avec% progress.

La commande RoboCopy suivante exécute la copie souhaitée et ajoute les informations de journalisation au fichier journal.

RoboCopy <source> <dest> /log+:<log file> /tee

Le problème est que le fichier journal est encombré de% mises à jour de progression. Par conséquent, je dois changer la commande en ceci:

RoboCopy <source> <dest> /log+:<log file> /tee /np

Maintenant, le problème est que je ne reçois aucune mise à jour% de progression à l'écran.

J'ai lu http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx plusieurs fois maintenant et je ne trouve pas les commutateurs dont j'ai besoin. Suis-je en train de manquer quelque chose ou ce que je veux réaliser n'est-il pas possible?


Devez-vous utiliser uniquement des outils intégrés?
Hello71

Réponses:


2

Comme personne n'a répondu à cela depuis si longtemps, j'ai pensé suggérer quelques choses.

Si vous utilisez des scripts batch, il ne devrait pas être trop difficile d'utiliser sed pour supprimer les informations de progression indésirables du fichier journal. Je ne suis pas assez expérimenté avec lui pour vous donner une solution en l'utilisant sans y consacrer un peu de temps.

Il existe une seule version de fichier .exe de seddans UnxUtils (avec une version légèrement plus à jour dans le zip de mise à jour).

Une autre option serait d'utiliser XXCOPY au lieu de Robocopy. Il a un nombre vraiment ridicule de commutateurs (plus de 230), ce qui vous permet de faire ce que vous voulez. Vous devez passer une soirée entière à choisir ceux que vous souhaitez utiliser. Il a également une boîte de dialogue de progression de l'interface graphique, si vous préférez l'utiliser.

Il existe une version gratuite pour un usage personnel, qui ne peut pas être utilisée pour les scripts automatisés, car vous devez suivre les invites de manière interactive, contrairement à la version payante.

XXCOPY

Une autre alternative est RichCopy , qui a une interface graphique qui pourrait être utilisée pour choisir vos options. Il peut ensuite vous donner la ligne de commande de votre opération pour une utilisation dans des scripts batch.

RichCopy


1

Re: Robocopie et progrès enregistrés «bruit»

Solution: utilisez juste / TEE et laissez-le enregistrer le «bruit», sinon vous ne verrez aucun progrès. Utilisez ensuite sed, comme suggéré pour nettoyer le fichier journal comme suit:

sed -i.bak "s / \ x0d. * \ x0d. * $ //" logfile.txt

supprimez le .bak si vous ne voulez pas de sauvegarde non fixée. sed est disponible pour les fenêtres ici, et fonctionne très bien, au moins pour une utilisation sur une seule ligne.

http://gnuwin32.sourceforge.net/packages/sed.htm

* (les commandes sed dans les scripts bash / cshell unix sont souvent réparties sur plusieurs lignes, ajoutant plus de flexibilité et de complexité .. je ne m'attends pas à ce que ce type de commandes sed fonctionne avec les scripts cmd de windows, mais sed est toujours utile sous windows).


+1 N'y a-t-il pas un moyen de stdoutpasser seddirectement au travers ?
paradroid

1
bien sûr, vous pouvez diriger à travers sed, ce qui supprimerait cependant les informations de progression de l'affichage de la console ainsi que éventuellement le fichier journal ...
Mac

Bien sûr, mais j'ai pensé que la teecommande pourrait peut-être être utilisée à la place du /TEEcommutateur de Robocopy , mais je viens de réaliser qu'elle fait partie TCC/LEet non d'une CMDcommande standard . Il est cependant disponible en PowerShell.
paradroid

en fait .. il écrit toujours le gâchis de progression dans le fichier journal! C'est exactement le contraire de ce qui est souhaité. Je viens de tester avec: robocopy. tst /log:n:\tst.log / tee | sed "s / \ x0d. * \ x0d. * $ //"
Mac

tee est également disponible sur gnuwin32 .. mais aurait le même problème;) gnuwin32.sourceforge.net/packages/coreutils.htm
Mac
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.