8

Я хочу запустить RoboCopy, который обновит консоль с% прогрессом, но не загромождает файл журнала с% прогрессом.

Следующая команда RoboCopy выполнит требуемое копирование и добавит информацию журнала в файл журнала.

RoboCopy <source> <dest> /log+:<log file> /tee

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

RoboCopy <source> <dest> /log+:<log file> /tee /np

Теперь проблема в том, что я не получаю никаких обновлений% прогресса на экране.

Я прочитал http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx несколько раз и не могу найти нужный мне переключатель. Я что-то упускаю или то, чего я хочу достичь, невозможно?

2 ответа2

2

Поскольку никто так долго не отвечал, я решил предложить пару вещей.

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

Существует единый EXE - файл версия sed в UnxUtils (с немного более актуальной версии в почтовый обновления).

Другой вариант будет использовать XXCOPY вместо Robocopy . Он имеет по-настоящему смешное количество переключателей (более 230), что позволяет вам делать все, что вы хотите. Вы должны провести целый вечер, выбирая, какие из них вы хотите использовать. У этого также есть диалоговое окно прогресса GUI, если вы предпочитаете использовать это.

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

XXCOPY

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

RichCopy

1

Re: Robocopy и зарегистрированный прогресс "шум"

Решение: используйте просто /TEE и позвольте ему регистрировать «шум», иначе вы не увидите никакого прогресса. Затем используйте sed, как вначале предложили очистить файл журнала следующим образом:

sed -i.bak "s/\x0d. *\x0d. * $//" logfile.txt

удалите .bak, если вы не хотите нефиксированную резервную копию. sed доступен для окон здесь и отлично работает, по крайней мере, для однострочного использования.

http://gnuwin32.sourceforge.net/packages/sed.htm

*(команды sed в сценариях unix bash/cshell часто разбиты на несколько строк, что повышает гибкость и сложность. Я не ожидаю, что команды такого типа sed будут работать со сценариями windows cmd, но sed по-прежнему полезна под окнами).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .