Então, estou trabalhando em um script para usar o RoboCopy para copiar vários arquivos e registrar o que foi copiado.
Funciona razoavelmente bem, exceto pelos arquivos de log. Eles tendem a ficar assim:
C:\Users\Tech\Documents\desktop.initechscan1.jpgtechscan2.jpgtechscan3.jpgtechscan4.jpgtechscan5.jpgwsus.jpgwsus2.jpgC:\Users\Tech\Documents\My Music\C:\Users\Tech\Documents\My Pictures\C:\Users\Tech\Documents\My Videos\C:\Users\Tech\Documents\My Digital Editions\
Como você pode ver, parece que faltam todos os espaços em branco e separadores entre as entradas no log. Existe algo que eu possa fazer para corrigir isso? É meio frustrante.
A linha de comando que estou usando é esta:
C:\Users\Tech\Desktop>Robocopy.exe C:\Users\Tech\Documents c:\Temp /e /l /b /xj /xf ntuser.* desktop.ini *.lnk /np /njh /log:migratedfiles.txt /v
Eu tenho o /l lá desde que estou depurando e é a maneira mais fácil de evitar copiar tudo um milhão de vezes.
Responder1
Eu estava enfrentando o mesmo problema com o log do Robocopy sendo todo amontoado em uma linha com muito poucas informações legíveis. O que resolveu para mim é algo que também posso ver no seu código; você está executando o comando Robocopy em sua área de trabalho. Tente executá-lo, digamos, em seus documentos (mova o arquivo bat se estiver usando um ou altere o diretório no prompt de comando se estiver indo direto do cmd)
Eu tenhonãoideia do porquê, mas para mim isso resolveu o problema imediatamente. Assim que eu apertei cd.. e mudei de c:\users\ishan\desktop para cd:\users\ishan, o robocopy mostrou um log adequado novamente. Eu mesmo uso um arquivo .bat para o comando robocopy, então movi-o para meus Documentos e executei-o a partir daí, pronto, problema resolvido.
Espero que isso ajude seu problema também.
Responder2
Eu estava lutando com esse mesmo problema e acredito que encontrei a resposta. Você terá que fazer uma pequena pesquisa, mas depois disso deve ser bastante fácil
Pesquise robo
ou similar em sua C:
unidade. Você deseja encontrar as localizações de RoboCopy.EXE
e RoboCopy.EXE.MUI
. Em um sistema de teste do Windows 7 de 32 bits que eu estava usando, encontrei esses arquivos nos seguintes diretórios:
C:\Windows\System32\RoboCopy.EXE
C:\Windows\System32\en-US\RoboCopy.EXE.MUI
Copie esses arquivos para um diretório separado, mas mantenha a mesma estrutura de diretórios encontrada depois de System32
. Por exemplo:
C:\Test_PGM\RoboCopy.EXE
C:\Test_PGM\en-US\RoboCopy.EXE.MUI
Agora execute RoboCopy
a partir do diretório alternativo. Por exemplo:
C:\>"C:\Test_PGM\RoboCopy.EXE" "C:\Test_SRC" "C:\Test_DST" /COPYALL
Isso fornecerá a saída formatada corretamente.
Responder3
Acredito que o PATH usado quando o arquivo em lote é executado é fundamental. A variável de caminho tem (para mim) %SystemRoot%\system32; %SystemRoot%; etc.
No entanto, um trabalho executando um arquivo bat com: ROBOCOPY.EXE /JOB:jobname.RCJ é executado de maneira diferente de C:\Windows\System32\ROBOCOPY.EXE /JOB:jobname.RCJ
Para que o trabalho seja executado corretamente, especifico o caminho completo na chamada ... Encontrei duas versões do Robocopy.exe (ambas com idade, versão do produto idênticas e fazendo a coisa corretamente), então não sei qual caminho NÃO especifica um o nome completo tem uma versão diferente do executável - mas está errado.