Избегать существующих сведений о файле целевой папки в журнале Robocopy
Я хотел бы избежать всех существующих имен файлов и сведений о папке назначения при использовании Robocopy Log.
Просто хочу показать только скопированный список файлов и его данные.
Таким образом, я мог бы сэкономить на размере файла журнала robocopy, избегая существующих деталей файла в журнале.
Есть ли возможность избежать этого, пожалуйста, помогите в этом
Я не мог видеть никакой возможности для этого
Параметры ведения журнала:::
/L :: List only - don't copy, timestamp or delete any files.
/X :: report all eXtra files, not just those selected.
/V :: produce Verbose output, showing skipped files.
/TS :: include source file Time Stamps in the output.
/FP :: include Full Pathname of files in the output.
/BYTES :: Print sizes as bytes.
/NS :: No Size - don't log file sizes.
/NC :: No Class - don't log file classes.
/NFL :: No File List - don't log file names.
/NDL :: No Directory List - don't log directory names.
/NP :: No Progress - don't display percentage copied.
/ETA :: show Estimated Time of Arrival of copied files.
/LOG:file :: output status to LOG file (overwrite existing log).
/LOG+:file :: output status to LOG file (append to existing log).
/UNILOG:file :: output status to LOG file as UNICODE (overwrite existing log).
/UNILOG+:file :: output status to LOG file as UNICODE (append to existing log).
/TEE :: output to console window, as well as the log file.
/NJH :: No Job Header.
/NJS :: No Job Summary.
/UNICODE :: output status as UNICODE.
7 ответов
По умолчанию robocopy
регистрирует только папки и не представленные / измененные (т.е. скопированные) файлы.
New Dir 2 C:\Temp\a\
100% New File 0 bar.txt
100% New File 0 foo.txt
Вы можете запретить регистрацию папок с помощью /ndl
переключатель (в этом случае скопированные файлы будут перечислены с полным путем).
100% New File 0 C:\Temp\a\bar.txt
100% New File 0 C:\Temp\a\foo.txt
Изменить только foo.txt
и перезапустить robocopy a b /ndl
и вы получите
100% Newer 3 C:\Temp\a\foo.txt
добавлять /njh
а также /njs
удалить заголовок и резюме из вывода. добавлять /np
убрать индикацию прогресса (процентное значение в начале строки вывода). добавлять /xx
удалить указание на дополнительные файлы (файлы, которые существуют только в месте назначения, но не в исходной папке):
C:\Temp>robocopy a b /njh /njs /ndl /np
*EXTRA File 0 C:\Temp\b\baz.txt
New File 0 C:\Temp\a\bar.txt
New File 0 C:\Temp\a\foo.txt
C:\Temp>echo "foo" >a\bar.txt
C:\Temp>robocopy a b /njh /njs /ndl /np /l
*EXTRA File 0 C:\Temp\b\baz.txt
Newer 3 C:\Temp\a\bar.txt
C:\Temp>robocopy a b /njh /njs /ndl /np /xx /l
Newer 8 C:\Temp\a\bar.txt
Вы должны использовать /NFL /NDL
, Они удалят все каталоги и списки файлов, которые не являются частью действий robocopy.
Похоже, что вы не можете основываться на этой публикации TechNet, потому что даже /v
вывод будет по-прежнему показывать пропущенные файлы.
Единственный вариант, который я могу себе представить, это запустить скрипт в журнале, удаляя пропущенные строки.
Наконец, я не смог найти никаких переключателей, выбрал сценарий таким образом, чтобы удалить существующую строку сведений о файле и вернуть файл с тем же именем файла после завершения каждой робокопии
#To remove all Lines with string "Extra File"
(Get-Content $LogPath)-replace '(.*Extra File).+' | Set-Content $LogPath
#To remove all empty lines
(Get-Content $LogPath) | Where-Object {$_ -match '\S'} | Set-Content $LogPath
то, что я сделал в моих файлах журнала для существующей строки сведений о файле, начинается со строки "Extra File", поэтому я удаляю все эти строки. Но пространство строки остается. поэтому я использовал другую команду, чтобы удалить все пустые строки.
Пожалуйста, внесите свой вклад, любой получил легкий способ для этого
Я думаю, что это может работать: robocopy sourceDir targetDir . / njh / njs / ndl / np | find / v "* Extra File"
Так что просто передайте вывод "find" с помощью /V для исключения строк, которые содержат указанный текст "*Extra File".
Я видел это /XX
также избегает удаления файлов EXTRA в целевой папке и по этой причине не регистрирует дополнительную информацию о файле. Кто-то ранее выше уже сказал, что /XX
отрицает /MIR
вариант.
Пытаться пробиться сквозь шум; использование robocopy /xx
и он не покажет файлы, которые уже находятся в папке назначения.