Я использую следующий командный файл для запуска моей команды robocopy:
@ECHO OFF
for /f %%a in ('wmic os get LocalDateTime ^| findstr ^[0-9]') do (set ts=%%a)
robocopy [source] [target] /log+:D:\logs\log_%ts:~0,8%.log /e /xo /w:10 /r:1000 /z /NP
robocopy [source] [target] /log+:D:\logs\log_%ts:~0,8%.log /e /xo /w:10 /r:1000 /z /NP
Это помогло мне записать все детали, которые я искал, за исключением того, что в нем не были записаны имена пропущенных / неудачных файлов. Существует ли команда скрипт / robocopy / любой другой способ записать имена пропущенных / неудачных файлов, чтобы помочь мне определить такие файлы. Это становится действительно трудно определить такие файлы для большого объема передачи файлов по сети.
Наиболее близкий, который я пришел к подобному вопросу, - это, но даже у этого не было никаких принятых / рабочих ответов
РЕДАКТИРОВАТЬ 1: Согласно комментарию Камена Минкова, я включил /v (многословный) в моей команде robocopy). Когда я преднамеренно потерпел неудачу при передаче файла, он регистрировал ошибку (историю повторных попыток), но это делает файл журнала все более трудным для интерпретации. Такой же случай наблюдался даже без /v. Я просто хочу, чтобы имя файла с ошибкой передачи было зарегистрировано как неудачное в моем файле журнала .txt
РЕДАКТИРОВАТЬ 2: В соответствии с ответом JosefZ, я запустил следующий код:
@ECHO OFF
for /f %%a in ('wmic os get LocalDateTime ^| findstr ^[0-9]') do (set ts=%%a)
robocopy [source] [target] /log+:D:\logs\log_%ts:~0,8%.log /e /xo /w:10 /r:0 /z /NP /V
if errorlevel 8 findstr "^[0-9,a-Z]" "D:\logs\log_%ts:~0,8%.log"
Это дало мне следующую ошибку после передачи всех файлов (я отключил сетевой кабель для сбоя нескольких файлов, поэтому были сбойные файлы):
FINDSTR: невозможно открыть D:\ABC\log\ErrorLog_20151029_1035.log
РЕДАКТИРОВАТЬ 3: вышеуказанная ошибка произошла, потому что я неправильно упомянул имя файла журнала для кода выхода. Правильный код (как ответил JosefZ):
@ECHO OFF
for /f %%a in ('wmic os get LocalDateTime ^| findstr ^[0-9]') do (set ts=%%a)
robocopy [source] [target] /log+:D:\ABC\log\log_%ts:~0,8%_%ts:~8,4%.log /e /xo /w:10 /r:2 /z /NP /V /TEE
if errorlevel 8 findstr "^[0-9,a-Z]" "D:\ABC\log\log_%ts:~0,8%_%ts:~8,4%.log"