Избегать существующих сведений о файле папки назначения в журнале Robocopy
Я хотел бы избежать всех существующих имен файлов и деталей папки назначения при использовании журнала Robocopy.
Просто хочу показать только скопированный список файлов и его данные.
Итак, я могу сохранить размер файла журнала 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.
Ответы
Ответ 1
По умолчанию 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
Ответ 2
Вы должны использовать /NFL /NDL
. Они удалят все каталоги и списки файлов, которые не являются частью действий robocopy.
Ответ 3
Похоже, вы не можете основываться на этой публикации TechNet, потому что даже вывод /v
все равно будет показывать пропущенные файлы.
Только вариант, который я могу представить, будет запускать script в журнале, удаляя пропущенные строки.
Ответ 4
Наконец, я не смог найти никаких переключателей, выбрал script таким образом, чтобы удалить существующую строку сведений о файле и вернуть файл с тем же именем файла после завершения каждого robocopy
#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", поэтому я удаляю все эти строки. Но линейное пространство остается. поэтому я использовал еще один комманд, чтобы удалить все пустые строки.
Пожалуйста, внесите вклад, любой из них получил легкий способ для этого
Ответ 5
Я думаю, это может сработать:
robocopy sourceDir targetDir./njh/njs/ndl/np | find/v "* Extra File"
Итак, просто подайте вывод на "find" с /V для исключения строк, содержащих указанный текст "Extra File".
Ответ 6
Попробовать прорезать шум; используйте robocopy /xx
, и он НЕ покажет файлы, которые уже находятся в папке назначения.