Come posso rendere robocopy silenzioso nella riga di comando tranne che per i progressi?


105

Sto usando Robocopy per eseguire backup con uno script PowerShell ed è davvero fantastico, tranne per il fatto che mi piacerebbe che mostrasse solo la percentuale di avanzamento mentre copia e non tutte le altre informazioni.

Le altre informazioni ingombrano la finestra di comando, che vorrei pulire e semplice in modo che sia facile vedere lo stato di avanzamento generale del backup.

È possibile?

Grazie, Andrew

Risposte:


192

Ho aggiunto i seguenti 2 parametri: /np /nfl

Quindi insieme ai 5 parametri dalla AndyGeek'srisposta, che sono /njh /njs /ndl /nc /nsi seguenti ed è silenzioso:

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
È ancora visualizzato un messaggio "100%".
Scott Chu

13
Questo stampa ancora una singola riga vuota che è visibile nei file batch.
wqw

7
/nc /nsnon è necessario quando /nfl /ndlè specificato.
Vojtěch Dohnal

3
@wqw, aggiungi semplicemente un> NUL all'EOL e la riga vuota è cronologia.
Herb

2
@ScottChu Viene stampato al 100% quando si utilizza l'opzione / mt. Immagino che dovrai decidere se vuoi il multithreading o nessun% s mostrato
Pagnotta

40

L'ho fatto utilizzando le seguenti opzioni:

/njh /njs /ndl /nc /ns

Nota che il nome del file viene ancora visualizzato, ma per me va bene.

Per ulteriori informazioni su robocopy, visitare http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx


3
/ nfl per sopprimere il nome del file
xagyg

12
Viene visualizzato se si utilizza /miro se /purgei file aggiuntivi sono ancora registrati. Non riesco a trovare un modo per disattivarlo.
bbodenmiller

1
nota che con robocopy la barra di avanzamento è solo% per file, non mostra l'avanzamento con il numero complessivo di byte copiati rispetto al totale /% di quello.
barlop

Molto interessante l'apprezzamento di @bbodenmiller ... Molto fastidioso registrare questi file ...
toscanelli

18

Se non vuoi alcun output, questo è il modo più semplice:

robocopy src dest > nul

Se hai ancora bisogno di alcune informazioni e vuoi rimuovere solo parti dell'output, usa i parametri dalla R.Koene'srisposta.


5
Provo > log:nulsotto win8.1 x64, c'è un file di registro vuoto. > nulfunziona come previsto.
Ivan Yan

1
Il logfile "vuoto" che questo genera non è nemmeno veramente vuoto. Sta solo salvando i dati in un flusso alternativo che è invisibile a Explorer, ma molto ancora presente sul disco. (Puoi controllare usando il dir /rcomando per mostrarlo.) @IvanYan è corretto, > nulè il comando corretto per eliminare completamente l'output.
jmbpiano

16

In PowerShell, mi piace usare:

robocopy src dest | Out-Null

Evita di dover ricordare tutte le opzioni della riga di comando.


Quando si esegue questa operazione, ha immediatamente interrotto il comando senza preavviso. Stavo usando /PURGE.
Sawtaytoes

Out-Null non dovrebbe avere effetto sull'esecuzione del comando robocopy. Reindirizza semplicemente il flusso di output. msdn.microsoft.com/en-us/powershell/reference/4.0/… Potresti provare a rimuovere Out-Null per vedere se l'output scartato offre qualche indizio su cosa sta succedendo.
Aaron Tribou

2

Una soluzione alternativa, se vuoi che sia assolutamente silenzioso, è reindirizzare l'output su un file (e facoltativamente eliminarlo in seguito).

Robocopy src dest > output.log
del output.log

6
inoltre> NUL butta via semplicemente l'output, nessun file di cui preoccuparsi.
Sellorio

1
o eseguire il pipe Out-Nullin PowerShell
orad

2

robocopy tende anche a stampare righe vuote anche se non fa nulla. Sto filtrando le righe vuote usando un comando come questo:

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

0

Il> null non funziona tra virgolette. Vede il> null come nome del file batch.

Il robocopy nessun output ha funzionato !!!

Ecco il nuovo file 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

-1

Non è necessario reindirizzare a un file ed eliminarlo in un secondo momento. Provare:

Robocopy src dest > null 

2
Questo crea un file nulle vi scrive il registro. Lo calma nella riga di comando al costo delle scritture sull'unità di archiviazione.
Sawtaytoes
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.