Как скрыть строки «Extra File» и «100%» из вывода Robocopy?

17

У меня есть скрипт robocopy для резервного копирования наших репозиториев Kiln, который работает каждую ночь и выглядит примерно так:

robocopy "$liveRepoLocation" "$cloneRepoLocation" /MIR /MT /W:3 /R:100 /LOG:"$backupLogLocation\BackupKiln.txt" /NFL /NDL /NP

В выводе есть тонна строк, которые содержат «Extra file», например:

*EXTRA File              153    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fdt
*EXTRA File               12    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fdx
*EXTRA File              128    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fnm
*EXTRA File              363    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.frq
*EXTRA File               13    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.nrm

Кроме того, есть сотни строк внизу, которые не содержат ничего, кроме «100%», например:

100%  
100%  
100%  
100%  
100%  
100%  
100%  

В дополнение к огромному количеству файлов журналов (в репозиториях Kiln есть много папок / файлов), это также раздражает время от времени сканировать журналы, чтобы увидеть, все ли работает нормально.

  1. Как мне остановить, чтобы «Дополнительные файлы» появлялись в журнале? (редактировать: все строки, а не только текст, так как / NC остановится)
  2. Как мне остановить эти глупые "100%" строки, появляющиеся в журнале?

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

Дэнни Таппени
источник
Согласно ss64.com/nt/robocopy.html это должно работать. Вы пытались изменить порядок параметров, чтобы отразить документацию? Это будет: / L / NP / LOG: файл / UNILOG: файл / LOG +: файл / UNILOG +: файл / TS / FP / NS / NC / NFL / NDL / TEE / NJH / NJS
Луис Анджело

Ответы:

8

Просто заметил, что вам не хватает / NC там.

/ NC: No Class - не регистрировать классы файлов.

Файлы классов ... Что означает «робокопия» под измененным, одиноким и лишним?

Поэтому я бы попробовал: robocopy "$ liveRepoLocation" "$ cloneRepoLocation" / MIR / MT / W: 3 / R: 100 / NP /LOG:"$backupLogLocation\BackupKiln.txt "/ NC

Редактировать 1

Виноват. Не видел, что вы уже упоминали, пытаясь / NC

Я проверял здесь. Кажется, что параметр / MIR игнорирует параметры ведения журнала. Также / MT портит это, добавляя 100%.

Единственный способ, которым я получил работу, был

D: \ robocopy> источник назначения robocopy / MIR / W: 3 / R: 100 / NS / NC / NFL / NDL / NP /LOG:log.txt ".

* Это на самом деле работает с / MIR. Но вы должны указать / NFL и /NDL.* Не знаю, приемлемо ли это для вас.

Если вы попытаетесь / MT, он все равно покажет глупые 100%

Редактировать 2

Я знаю, что вопрос был о Robocopy, но я думаю, что вы должны попробовать RichCopy http://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight.aspx

Вот командная строка:

richcopy "D: \ robocopy \ source" "D: \ robocopy \ destination" / P / QO / QP "D: \ robocopy \ report.log" / UE / US / UD / UPC / UFC / USC / UPR / UET

Он запускает графический интерфейс RichCopy и закрывается по завершении.

А вот и журнал

28/11/2012 11: 35: 19,0, начало копирования,

28/11/2012 11: 35: 20,0, Путь к источнику: D: \ robocopy \ source,

28/11/2012 11: 35: 20,0, Путь назначения: d: \ robocopy \ destination,

28/11/2012 11: 35: 20,0, Количество исходных файлов: 12 файлов,

28/11/2012 11: 35: 20,0, Количество скопированных файлов: 13 файлов,

28/11/2012 11: 35: 20,0, Количество очищенных файлов: 1224 файла,

28/11/2012 11: 35: 20,0, прошедшее время: 00:00:01,

28/11/2012 11: 35: 20,0, средняя производительность: 1 641 528 байт / с,

28/11/2012 11: 35: 20,0, средняя производительность: 13 файлов / с,

28/11/2012 11: 35: 20,0, Копирование завершено, D: \ robocopy \ source

Луис Анджело
источник
1
/ NC просто удаляет столбец «Extra File», поэтому текст не отображается. Остальная часть линии все еще включена. Я не хочу линии вообще; Я просто хочу резюме :(
Дэнни Таппени
Виноват. Не видел, что ты уже говорил об этом. Я проверял здесь. Кажется, что параметр / MIR игнорирует параметры ведения журнала. Также / MT все испортило. Единственным способом, с помощью которого я работал, был «D: \ robocopy> источник назначения robocopy / MIR / W: 3 / R: 100 / NS / NC / NFL / NDL / NP /LOG:log.txt». Если вы попытаетесь / MT, он все равно покажет глупые 100%.
Луис Анджело
1
100% - это худшая часть (их гораздо больше, чем дополнительных файлов); Я не осознавал, что это делает MT, поэтому мог бы убрать это, если это не дает огромной выгоды!
Дэнни Таппени
Отметьте это как правильное, так как это решение для 100%, и я не думаю, что есть решение для ведения журнала «Extra file» с помощью / MIR :(
Дэнни Таппени,
Я только что отредактировал свой оригинальный ответ. Просто разместите новый комментарий, чтобы не пропустить его.
Луис Анджело
5

/XXОпция исключает дополнительные файлы из перечисленных. Наоборот, эта опция указана в File Selectionопциях, а не Logging. /XЯ полагаю, это противоположность опции регистрации.

Кит
источник
1
Я считаю, что / XX не позволяет вам выбрать дополнительные файлы, а / X только для регистрации, но позволяет отображать ДАЖЕ БОЛЬШЕ дополнительных файлов! / XX сделал свое дело для меня.
sonjz
1
-1, поскольку / XX оставляет дополнительный файл в месте назначения, а не удаляет его, как и ожидалось в процессе зеркалирования.
Отметить
3

Я думаю, что это может работать:

robocopy sourceDir targetDir *.* /njh /njs /ndl /np | find /v "*EXTRA File"

Так что просто передайте вывод «find» с помощью / V для исключения строк, содержащих указанный текст «* Extra File».

Свейн Терье Гауп
источник
Как исключить% прогресса (счетчик от 0 до 100%) только из журнала (но все еще видимый на консоли)?
PeterCo
0

как насчет использования переключателей

 /MIR /MT /W:3 /R:100 /NFL /NDL /NP 2>&1 | findstr /v /L /C:" * EXTRA " | findstr /v /L /C:"100%%" > "log file name with or without path"

так что у тебя есть

robocopy "$liveRepoLocation" "$cloneRepoLocation" /MIR /MT /W:3 /R:100 /NFL /NDL /NP 2>&1 | findstr /v /L /C:" * EXTRA " | findstr /v /L /C:"100%%" > "$backupLogLocation\BackupKiln.txt"
  • двойной %% должен иметь% в строке поиска
  • 2> & 1 перенаправляет Поток Stderr на стандартный вывод , что некоторые сообщения записываются в стандартный вывод , и мы хотим , чтобы захватить эти строки , как переключатель / LOG делает.
  • 2 команды findstr с ключом / v находят все строки, которые не содержат строку поиска
  • > «лог - файла протокола» перенаправляет окончательный вывод в файл журнала. Если вы обычно используете / LOG: +, тогда используйте >> "log filename" вместо

Примечания: если вы используете это в скрипте powershell, как вам кажется, вам нужно использовать findstr вместо find, как вы можете в файле .bat или .cmd. Обратите внимание, что / L и / C: не поддерживаются командой find, но для команды find они не требуются.

BeowulfNode42
источник