AndrewL
AndrewL

Reputation: 3326

How can I make robocopy silent in the command line except for progress?

I'm using robocopy to do backups with a PowerShell script, and it's pretty awesome, except that I'd like it to only show the progress percentage while it copies and not all of the other information.

The other information clutters the command window, which I'd clean and simple so that it's easy to see the overall progress of the backup.

Is this possible?

Upvotes: 156

Views: 226335

Answers (9)

AndrewL
AndrewL

Reputation: 3326

I did it by using the following options:

/njh /njs /ndl /nc /ns

Note that the file name still displays, but that's fine for me.

For more information on robocopy, go to https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy

Upvotes: 50

Maciej Konigsman
Maciej Konigsman

Reputation: 1

I'm not sure if it is correct but I used this in Gitlab and it works:

robocopy <src> <dst> *.dll *.exe *.bat /E; $LastExitCode

Upvotes: 0

Jason L
Jason L

Reputation: 104

The > null does not work in the quotes. It sees the > null as the batch filename.

The robocopy no output worked!!!

Here is the new batch file:

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

Upvotes: -1

SHernandez
SHernandez

Reputation: 1120

If you want no output at all this is the most simple way:

robocopy src dest > nul

If you still need some information and only want to strip parts of the output, use the parameters from R.Koene's answer.

Upvotes: 38

areB
areB

Reputation: 1

There's no need to redirect to a file and delete it later. Try:

Robocopy src dest > null 

Upvotes: -4

TarmoPikaro
TarmoPikaro

Reputation: 5233

robocopy also tends to print empty lines even if it does not do anything. I'm filtering empty lines away using command like this:

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

Upvotes: 4

R. Koene
R. Koene

Reputation: 2790

I added the following 2 parameters: /np /nfl

So together with the 5 parameters from AndyGeek's answer, which are /njh /njs /ndl /nc /ns you get the following and it's silent:

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.

Upvotes: 275

Aaron Tribou
Aaron Tribou

Reputation: 1501

In PowerShell, I like to use:

robocopy src dest | Out-Null

It avoids having to remember all the command line switches.

Upvotes: 21

HSM
HSM

Reputation: 101

A workaround, if you want it to be absolutely silent, is to redirect the output to a file (and optionally delete it later).

Robocopy src dest > output.log
del output.log

Upvotes: 2

Related Questions