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
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
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.
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.
Dans PowerShell, j'aime utiliser:
robocopy src dest | Out-Null
Cela évite d'avoir à se souvenir de tous les commutateurs de ligne de commande.
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
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 "^$"
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