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


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

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

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

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

8 75

8 ответов:

я добавил следующие 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.

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

/njh /njs /ndl /nc /ns

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

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

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

robocopy src dest | Out-Null

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

Если вы не хотите выводить вообще это самый простой способ:

robocopy src dest > nul

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

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

Robocopy src dest > output.log
del output.log

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

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

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

У программы нет выходных работал!!!

вот новый пакетный файл:

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

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

Robocopy src dest > null