Я хочу запустить 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 несколько раз и не могу найти нужный мне переключатель. Я что-то упускаю или то, чего я хочу достичь, невозможно?
Ответы:
Поскольку никто так долго не отвечал, я решил предложить пару вещей.
Если вы используете пакетные сценарии, не должно быть слишком сложно использовать sed для удаления нежелательной информации о ходе выполнения из файла журнала. Я не достаточно опытен, чтобы дать вам решение, используя его, не затрачивая на это времени.
Существует одна версии .exe файл
sed
в UnxUtils (с версией чуть более до даты в почтовом обновлении).Другой вариант будет использовать XXCOPY вместо
Robocopy
. Он имеет по-настоящему смешное количество переключателей (более 230), что позволяет вам делать все, что вы хотите. Вы должны провести целый вечер, выбирая, какие из них вы хотите использовать. У этого также есть диалоговое окно прогресса GUI, если вы предпочитаете использовать это.Существует бесплатная версия для личного пользования, которую нельзя использовать для автоматического написания сценариев, так как вам нужно интерактивно следовать подсказкам, в отличие от платной версии.
Другой альтернативой является RichCopy , который имеет графический интерфейс, который можно использовать для выбора ваших опций. Затем он может дать вам командную строку вашей операции для использования в пакетных сценариях.
источник
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 по-прежнему полезна в Windows).
источник
stdout
пройти через негоsed
напрямую?tee
команда может использоваться вместо/TEE
переключателя Robocopy , но я только что понял, что это часть,TCC/LE
а не стандартнаяCMD
команда. Это доступно вPowerShell
хотя.