web-dev-qa-db-fra.com

Comment puis-je rendre Robocopy silencieux en ligne de commande, sauf pour Progress?

J'utilise robocopy pour effectuer des sauvegardes avec un script PowerShell, et c'est vraiment génial, sauf que j'aimerais qu'il affiche uniquement le pourcentage de progression pendant la copie et non toutes les autres informations.

Les autres informations encombrent la fenêtre de commande, que je nettoierais et simplifierait pour que nous puissions facilement voir la progression de la sauvegarde.

Est-ce possible?

Merci Andrew

88
AndyGeek

Je l'ai fait en utilisant les options suivantes:

/njh /njs /ndl /nc /ns

Notez que le nom du fichier est toujours affiché, mais ça me convient.

Pour plus d'informations sur robocopy, accédez à http://technet.Microsoft.com/en-us/library/cc733145%28WS.10%29.aspx

35
AndyGeek

J'ai ajouté les 2 paramètres suivants: /np /nfl

Donc, avec les 5 paramètres de AndyGeek's réponse, qui sont /njh /njs /ndl /nc /ns vous obtenez ce qui suit et c’est silencieux:

ROBOCOPY [source] [target] /NFL /NDL /NJH /NJS /nc /ns /np

/NFL : No File List - don't log file names.
/NDL : No Directory List - don't log directory names.
/NJH : No Job Header.
/NJS : No Job Summary.
/NP  : No Progress - don't display percentage copied.
/NS  : No Size - don't log file sizes.
/NC  : No Class - don't log file classes.
159
R. Koene

Si vous ne voulez aucune sortie, voici le moyen le plus simple:

robocopy src dest > nul

Si vous avez encore besoin de certaines informations et que vous souhaitez uniquement supprimer certaines parties de la sortie, utilisez les paramètres de R.Koene's répondre.

13
SHernandez

Dans PowerShell, j'aime utiliser:

robocopy src dest | Out-Null

Cela évite d'avoir à se souvenir de tous les commutateurs de ligne de commande.

12
Aaron Tribou

Une solution de contournement, si vous souhaitez qu'il soit absolument silencieux, consiste à rediriger la sortie vers un fichier (et éventuellement à le supprimer ultérieurement).

Robocopy src dest > output.log
del output.log
2
HSM

robocopy a également tendance à imprimer des lignes vides même s'il ne fait rien. Je filtre les lignes vides en utilisant une commande comme celle-ci:

robocopy /NDL /NJH /NJS /NP /NS /NC %fromDir% %toDir% %filenames% | findstr /r /v "^$"
1
TarmoPikaro

Le> null ne fonctionne pas dans les guillemets. Il voit le> null comme le nom de fichier du lot.

Le robocopy pas de sortie a fonctionné !!!

Voici le nouveau fichier batch:

robocopy /mir /B /r:1 /nfl /ndl /njh /njs /nc /ns /np c:\EnvBackup c:\offsite_backup\EnvBackup

robocopy /mir /B /r:1 /nfl /ndl /njh /njs /nc /ns /np c:\shares c:\offsite_backup\shares

robocopy /mir /B /r:1 /nfl /ndl /njh /njs /nc /ns /np c:\Quickbooks_Backup c:\offsite_backup\Quickbooks_Backup
0
Jason L