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?
Réponses:
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
sed
dans 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.
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.
la source
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).
la source
stdout
passersed
directement au travers ?tee
commande pourrait peut-être être utilisée à la place du/TEE
commutateur de Robocopy , mais je viens de réaliser qu'elle fait partieTCC/LE
et non d'uneCMD
commande standard . Il est cependant disponible enPowerShell
.