Как я могу заставить 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
HSM
источник
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 
areB
источник
2
Это создает файл nullи записывает в него журнал. Он успокаивает его в командной строке за счет записи на накопитель.
Sawtaytoes