Как я могу заставить robocopy молчать в командной строке, кроме прогресса?


105

Я использую robocopy для резервного копирования с помощью сценария PowerShell, и это довольно круто, за исключением того, что я хотел бы, чтобы он показывал только процент выполнения при копировании, а не всю другую информацию.

Другая информация загромождает командное окно, которое я бы очистил и упростил, чтобы было легко увидеть общий ход резервного копирования.

Это возможно?

Спасибо, Андрей

Ответы:


192

Я добавил следующие 2 параметра: /np /nfl

Итак, вместе с 5 параметрами из AndyGeek'sответа /njh /njs /ndl /nc /nsвы получаете следующее, и оно молчит:

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
По-прежнему отображается сообщение "100%".
Скотт Чу

13
При этом по-прежнему печатается одна пустая строка, которая заметна в пакетных файлах.
wqw 02

7
/nc /nsне требуется, если /nfl /ndlуказано.
Vojtěch

3
@wqw, просто добавьте> NUL в EOL, и пустая строка будет историей.
Херб

2
@ScottChu Это печатает 100% при использовании переключателя / mt. Думаю, вам придется решить, хотите ли вы многопоточность или не показывать% s
Loaf

40

Я сделал это, используя следующие варианты:

/njh /njs /ndl /nc /ns

Обратите внимание, что имя файла все еще отображается, но для меня это нормально.

Для получения дополнительной информации о robocopy перейдите на http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx


3
/ nfl для подавления имени файла
xagyg 02

12
Появляется, если вы используете /mirили /purgeдополнительные файлы все еще регистрируются. Не могу найти способ выключить это.
bbodenmiller

1
обратите внимание, что с robocopy индикатор выполнения составляет только% на файл, не показывает прогресс с общим количеством байтов, скопированных из общего /% этого.
barlop

Очень интересная благодарность @bbodenmiller ... Очень неприятно регистрировать эти файлы ...
toscanelli

18

Если вам не нужно никакого вывода, это самый простой способ:

robocopy src dest > nul

Если вам все еще нужна некоторая информация и вы хотите удалить только часть вывода, используйте параметры из R.Koene'sответа.


5
Я тест > log:nulпод win8.1 x64, есть пустой файл журнала. > nulработает как положено.
Иван Ян

1
logСоздаваемый «пустой» файл даже не является пустым. Это просто сохранение данных в альтернативном потоке, который невидим для проводника, но все еще присутствует на диске. (Вы можете проверить, используя dir /rкоманду, чтобы показать это.) @IvanYan верна, > nulэто правильная команда для полного отказа от вывода.
jmbpiano

16

В PowerShell мне нравится использовать:

robocopy src dest | Out-Null

Это позволяет избежать запоминания всех переключателей командной строки.


При этом он немедленно убивал команду без предупреждения. Я использовал /PURGE.
Sawtaytoes

Out-Null не должен влиять на выполнение команды robocopy. Он просто перенаправляет выходной поток. msdn.microsoft.com/en-us/powershell/reference/4.0/… Вы можете попробовать удалить Out-Null, чтобы увидеть, дает ли отброшенный вывод какой-либо ключ к разгадке происходящего.
Аарон Трибу

2

Обходной путь, если вы хотите, чтобы он был абсолютно бесшумным, - перенаправить вывод в файл (и, при необходимости, удалить его позже).

Robocopy src dest > output.log
del output.log

6
также> NUL просто отбрасывает вывод, не о чем беспокоиться.
Sellorio

1
или по трубе Out-Nullв PowerShell
orad

2

robocopy также имеет тенденцию печатать пустые строки, даже если он ничего не делает. Я отфильтровываю пустые строки с помощью такой команды:

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

0

Символ> null не работает в кавычках. Он видит> null как имя файла пакета.

Robocopy никакой выход не работал !!!

Вот новый командный файл:

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

Нет необходимости перенаправлять на файл и удалять его позже. Пытаться:

Robocopy src dest > null 

2
Это создает файл nullи записывает в него журнал. Он успокаивает его в командной строке за счет записи на накопитель.
Sawtaytoes
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.