Как получить robocopy для использования файла журнала, который содержит пробелы?

11

Я пытаюсь следующую команду:

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"

Я получаю эту ошибку:

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

РЕДАКТИРОВАТЬ # 1

Оказывается, что приведенная выше команда была действительной, у меня была опечатка на моем пути. Если у вас есть путь, который включает пробелы, вы можете предоставить их переключателю robocopy / log следующим образом:/log:"c:\path to a file\robocopy.log"

ОДС
источник
Работает для меня. Возможно ли это показать более подробную ошибку в верхней части?
Carko
Вы запускаете эту команду в контексте скрипта, а не прямо в командной строке. Возможно, что-то еще добавляет какой-то побег?
Zoredache
Сообщение об ошибке предполагает, что начальные кавычки находятся перед двоеточием, а не после; Вы уверены, что команда, которую вы пытались выполнить, такая, как показано?
Гарри Джонстон
Мне очень жаль, у меня была опечатка в пути. Сильно смущен. Спасибо всем за оперативную помощь! Какова процедура, я должен удалить этот вопрос? Или я могу перефразировать его и добавить ответ, показывающий, что вы можете поместить кавычки вокруг аргумента в / log переключателя robocopy?
SLM
Нет причин удалять @slm. Если один из приведенных выше комментариев помог вам найти проблему, попросите их опубликовать ее как ответ, а затем пометьте ответ как правильный. Если проблема была чем-то совершенно другим, напишите свой собственный ответ и пометьте его как ответ, чтобы будущие поисковики знали, проверяют ли они подобную проблему.
music2myear

Ответы:

11

Если вам нужно указать путь к пробелам для переключателя / log в robocopy, вы можете сделать это следующим образом:

/log:"c:\path to logs files\some log file.txt"
ОДС
источник
Я получаю неверную ошибку: параметр # 11 "/ log". Я добавил его в конец другой рабочей команды.
Андрей С
Я больше не работаю там, где поддерживаю Windows, поэтому у меня нет возможности это проверить.
СЛМ
Убедитесь, что родительский каталог файла журнала существует. Robocopy не создаст его и, к сожалению, жалуется на параметр cmdline, если dir не существует.
Моджо
4

Существует четыре способа регистрации в качестве документации Powershell.

/log:<LogFile> : Записывает вывод состояния в файл журнала (перезаписывает существующий файл журнала).

  • например: robocopy "c:\a" "c:\b" /log:"c:\copy_log.log"

/log+:<LogFile> : Записывает вывод состояния в файл журнала (добавляет вывод в существующий файл журнала).

  • например: robocopy "c:\a" "c:\b" /log+:"c:\copy_log.log"

/unilog:<LogFile> : Записывает вывод состояния в файл журнала в виде текста Unicode (перезаписывает существующий файл журнала).

  • например: robocopy "c:\a" "c:\b" /unilog:"c:\copy_log.log"

/unilog+:<LogFile> : Записывает вывод состояния в файл журнала в виде текста Unicode (добавляет вывод в существующий файл журнала).

  • например: robocopy "c:\a" "c:\b" /unilog+:"c:\copy_log.log"

Для получения дополнительной информации https://technet.microsoft.com/en-us/library/cc733145(v=ws.11).aspx

Наяна Адассурия
источник
Я также рекомендую добавить параметр /teeswitch, поскольку он также выводит данные из командной строки и позволяет пользователю также видеть процесс копирования файлов в командной строке.
vibs2006
1

Это происходит, когда нужны права администратора / или поп, чтобы создать файл в этот каталог

Так что попробуйте иметь каталог log / temp и попробуйте добавить файл журнала в этот каталог журнала

$ mkdir C:\log

например:

$ robocopy "c:\a" "c:\b" /log:"c:\log\copy_log.log"
jaismeensandhu
источник
0

Если путь к файлу журнала содержит пробелы или некоторые другие разделители сценариев, включите его в кавычки, такие как EDIT # 1 и @slm. Но также обратите внимание на использование escape-символов, как описано в этой документации по пакетным сценариям .

Alain
источник
У меня та же проблема после довольно катастрофической и нежелательной миграции на Win 10.
Марк