¿Cómo puedo hacer que robocopy sea silencioso en la línea de comando excepto para el progreso?


105

Estoy usando robocopy para hacer copias de seguridad con un script de PowerShell, y es bastante impresionante, excepto que me gustaría que solo muestre el porcentaje de progreso mientras se copia y no toda la otra información.

La otra información satura la ventana de comandos, que yo limpiaría y simplificaría para que sea fácil ver el progreso general de la copia de seguridad.

es posible?

Gracias, andrew

Respuestas:


192

Agregué los siguientes 2 parámetros: /np /nfl

Entonces, junto con los 5 parámetros de AndyGeek'srespuesta, /njh /njs /ndl /nc /nsobtienes lo siguiente y es silencioso:

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.

2
Todavía se muestra un mensaje "100%".
Scott Chu

13
Esto todavía imprime una sola línea vacía que se nota en los archivos por lotes.
wqw

7
/nc /nsno es necesario cuando /nfl /ndlse especifica.
Vojtěch Dohnal

3
@wqw, simplemente agregue un> NUL en el EOL, y la línea vacía es historia.
Hierba

2
@ScottChu Esto se imprime al 100% cuando usa el modificador / mt. Supongo que tendrás que decidir si quieres multiproceso o no se muestra% s
Loaf

40

Lo hice usando las siguientes opciones:

/njh /njs /ndl /nc /ns

Tenga en cuenta que el nombre del archivo todavía se muestra, pero eso está bien para mí.

Para obtener más información sobre robocopy, vaya a http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx


3
/ nfl para suprimir el nombre del archivo
xagyg

12
Aparece si usa /miro /purgelos archivos adicionales aún están registrados. No puedo encontrar una manera de apagar eso.
bbodenmiller

1
tenga en cuenta que con robocopy la barra de progreso es solo% por archivo, no muestra el progreso con el número total de bytes copiados del total /% de eso.
barlop

Muy interesante apreciación de @bbodenmiller ... Registro muy molesto de estos archivos ...
toscanelli

18

Si no desea ningún resultado, esta es la forma más sencilla:

robocopy src dest > nul

Si aún necesita algo de información y solo desea quitar partes de la salida, use los parámetros de R.Koene'sanswer.


5
Prueba que > log:nulbajo x64 win8.1, hay un archivo de registro vacío. > nulfunciona como se esperaba.
Ivan Yan

1
El logarchivo "vacío" que esto genera ni siquiera está realmente vacío. Es simplemente guardar los datos en una secuencia alternativa que es invisible para Explorer, pero que todavía está presente en el disco. (Puede verificar usando el dir /rcomando para mostrarlo). @IvanYan es correcto, > nules el comando correcto para descartar la salida por completo.
jmbpiano

16

En PowerShell, me gusta usar:

robocopy src dest | Out-Null

Evita tener que recordar todos los conmutadores de la línea de comandos.


Al hacer esto, inmediatamente eliminó el comando sin previo aviso. Estaba usando /PURGE.
Sawtaytoes

Out-Null no debería tener ningún efecto en la ejecución del comando robocopy. Simplemente redirige el flujo de salida. msdn.microsoft.com/en-us/powershell/reference/4.0/… Puede intentar eliminar Out-Null para ver si la salida descartada ofrece alguna pista de lo que está sucediendo.
Aaron Tribou

2

Una solución alternativa, si desea que sea absolutamente silencioso, es redirigir la salida a un archivo (y, opcionalmente, eliminarlo más tarde).

Robocopy src dest > output.log
del output.log

6
también> NUL simplemente descarta la salida, no hay archivo de qué preocuparse.
Sellorio

1
o canalizar a Out-Nullen PowerShell
orad

2

robocopy también tiende a imprimir líneas vacías incluso si no hace nada. Estoy filtrando líneas vacías usando un comando como este:

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

0

El> nulo no funciona entre comillas. Ve el> nulo como el nombre del archivo por lotes.

El robocopy no funcionó !!!

Aquí está el nuevo archivo por lotes:

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

-1

No es necesario redirigir a un archivo y eliminarlo más tarde. Tratar:

Robocopy src dest > null 

2
Esto crea un archivo nully escribe el registro en él. Lo silencia en la línea de comandos a costa de las escrituras de la unidad de almacenamiento.
Sawtaytoes
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.