Como obtenho a robocopy para usar um arquivo de log que inclui espaços?


11

Estou tentando o seguinte comando:

robocopy "x:\dir" "y:\dir" /mir /z /tee /fft /nfl /ndl /eta /log:"x:\path to logs\12-15-11 01 file with spaces.txt"

Estou recebendo este erro:

ERROR : Invalid Parameter #10 : "/log:x:\path to logs\12-15-11 01 file with spaces.txt"

EDIT # 1

Acontece que o comando acima era válido, eu tive um erro de digitação no meu caminho. Se você possui um caminho que inclui espaços, pode fornecê-los à opção / log do robocopy da seguinte maneira:/log:"c:\path to a file\robocopy.log"


Funciona para mim. Talvez isso mostre um erro mais detalhado no topo?
— Carko

Você está executando esse comando no contexto de um script em vez de diretamente na linha de comando. Talvez algo mais esteja adicionando algum tipo de fuga?
— precisa

A mensagem de erro sugere que as aspas iniciais são antes e depois dos dois pontos; Tem certeza de que o comando que você estava tentando executar é o mostrado?
— Harry Johnston

Sinto muito, tive um erro de digitação no caminho. Principalmente envergonhado. Obrigado pela pronta ajuda de todos! Qual é o procedimento, devo excluir esta pergunta? Ou posso reformulá-lo e adicionar uma resposta mostrando que você pode colocar aspas ao redor do argumento na opção / log da robocopy?
— Slm

Não há razão para excluir @slm. Se um dos comentários acima o ajudou a encontrar o problema, peça que eles o publiquem como resposta e marque a resposta correta. Se o problema for algo totalmente diferente, escreva sua própria resposta e marque-a como a resposta para que futuros pesquisadores saibam para verificar se eles têm um problema semelhante.
— Music2myear

Respostas:


11

Se você precisar fornecer um caminho que inclua espaços para a opção / log do robocopy, faça-o da seguinte maneira:

/log:"c:\path to logs files\some log file.txt"

Eu recebo o erro inválido: parâmetro # 11 "/ log". Eu o adicionei ao final de um comando que estava funcionando.
— Andrew S

Não trabalho mais onde suporte janelas, portanto não tenho como testar isso.
— Slm

Verifique se o diretório pai do arquivo de log existe. O Robocopy não o criou e, infelizmente, reclama do parâmetro cmdline se o dir não existir.
— mojo

4

Existem quatro maneiras de registrar como a documentação do Powershell

/log:<LogFile> : Grava a saída de status no arquivo de log (substitui o arquivo de log existente).

  • por exemplo: robocopy "c:\a" "c:\b" /log:"c:\copy_log.log"

/log+:<LogFile> : Grava a saída de status no arquivo de log (anexa a saída ao arquivo de log existente).

  • por exemplo: robocopy "c:\a" "c:\b" /log+:"c:\copy_log.log"

/unilog:<LogFile> : Grava a saída de status no arquivo de log como texto Unicode (substitui o arquivo de log existente).

  • por exemplo: robocopy "c:\a" "c:\b" /unilog:"c:\copy_log.log"

/unilog+:<LogFile> : Grava a saída de status no arquivo de log como texto Unicode (anexa a saída ao arquivo de log existente).

  • por exemplo: robocopy "c:\a" "c:\b" /unilog+:"c:\copy_log.log"

Para mais detalhes https://technet.microsoft.com/en-us/library/cc733145(v=ws.11).aspx


Também recomendarei adicionar a /teeopção, pois isso também produzirá a saída da linha de comando e permitirá que o usuário veja também o progresso da cópia de arquivos na linha de comando.
— precisa saber é o seguinte

1

Isso acontece quando você precisa de privilégios de administrador / ou pop para criar um arquivo nesse diretório

Portanto, tente ter um diretório log / temp e tente adicionar o arquivo de log nesse diretório

$ mkdir C:\log

por exemplo:

$ robocopy "c:\a" "c:\b" /log:"c:\log\copy_log.log"

0

Se o caminho para o arquivo de log contiver espaços ou outros delimitadores de script, inclua-o entre aspas , como sua EDIT # 1 e @slm sugerem. Além disso, observe o uso de caracteres de escape, conforme descrito nesta documentação sobre scripts em lote .


Estou tendo o mesmo problema após uma migração Win 10 bastante desastrosa e indesejada.
— Marc
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.