Estou usando o seguinte arquivo em lote para executar meu comando 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
Isso me ajudou a registrar todos os detalhes que eu estava procurando, exceto que ele não registrava os nomes dos arquivos ignorados / com falha. Existe um script / comando robocopy / qualquer outra maneira de registrar os nomes dos arquivos ignorados / com falha para me ajudar a determinar esses arquivos. Torna-se realmente difícil determinar esses arquivos para um grande volume de transferência de arquivos pela rede.
O mais próximo que cheguei a uma pergunta semelhante é isso , mas mesmo isso não teve nenhuma resposta aceita / trabalhada
EDIT 1: De acordo com o comentário de Kamen Minkov, incluí / v (verbose) no meu comando robocopy). Quando eu propositadamente falhei na transferência de arquivos, ele registrou o erro (histórico de novas tentativas), mas isso torna o arquivo de log cada vez mais difícil de interpretar. O mesmo caso foi observado mesmo sem / v. Eu só quero que o nome do arquivo de transferência com falha seja registrado como falhado uma vez no meu arquivo de log .txt
EDIT 2: De acordo com a resposta de JosefZ, eu corri o seguinte código:
@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"
Isso me deu um erro após a transferência de todos os arquivos (desconectei o cabo de rede para reprovar alguns arquivos, então houve arquivos com falha):
FINDSTR: Cannot open D:\ABC\log\ErrorLog_20151029_1035.log
EDIT 3: O erro acima ocorreu porque eu mencionei incorretamente o nome do arquivo de log para o código de saída. O código correto é (Como respondido por 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"