Избегать существующих сведений о файле целевой папки в журнале 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 и он не покажет файлы, которые уже находятся в папке назначения.

Другие вопросы по тегам