Поэтому я работаю над скриптом, который будет использовать RoboCopy для копирования группы файлов и регистрации того, что именно копируется.
Работает достаточно хорошо, за исключением лог-файлов. Они выглядят примерно так:
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\
Как вы видите, в журнале, похоже, отсутствуют все пробелы и разделители между записями. Можно ли что-то сделать, чтобы это исправить? Это немного раздражает.
Я использую следующую командную строку:
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
У меня там есть /l, так как я занимаюсь отладкой, и это самый простой способ избежать копирования всего по миллиону раз.
решение1
У меня была та же проблема с журналом Robocopy, который был забит в одну строку с очень небольшим количеством читаемой информации. Что исправило это для меня, так это то, что я вижу в вашем коде; вы запускаете команду Robocopy с вашего рабочего стола. Попробуйте запустить ее, скажем, из ваших документов (переместите файл bat, если вы его используете, или измените каталог в командной строке, если вы работаете напрямую из cmd)
У меня естьнетидея почему, но для меня это решило проблему сразу. Как только я нажал cd.. и перешел из c:\users\ishan\desktop в cd:\users\ishan, robocopy снова показал правильный журнал. Я сам использую файл .bat для команды robocopy, поэтому я переместил его в свои Документы, запустил его оттуда, вуаля, проблема решена.
Надеюсь, это поможет решить и вашу проблему.
решение2
Я боролся с этой же проблемой и, кажется, нашел ответ. Вам придется немного поискать, но после этого все должно быть довольно просто
Найдите robo
или похожие на вашем C:
диске. Вы хотите найти местоположения RoboCopy.EXE
и RoboCopy.EXE.MUI
. На 32-битной тестовой системе Windows 7, которую я использовал, я нашел указанные файлы в следующих каталогах:
C:\Windows\System32\RoboCopy.EXE
C:\Windows\System32\en-US\RoboCopy.EXE.MUI
Скопируйте эти файлы в отдельный каталог, но сохраните ту же структуру каталогов, которую вы найдете после System32
. Например:
C:\Test_PGM\RoboCopy.EXE
C:\Test_PGM\en-US\RoboCopy.EXE.MUI
Теперь запустите RoboCopy
из альтернативного каталога. Например:
C:\>"C:\Test_PGM\RoboCopy.EXE" "C:\Test_SRC" "C:\Test_DST" /COPYALL
Это обеспечит правильно отформатированный вывод.
решение3
Я считаю, что PATH, используемый при запуске пакетного файла, является ключевым. Переменная Path имеет (для меня) %SystemRoot%\system32; %SystemRoot%; и т. д.
Однако задание, запускающее bat-файл с: ROBOCOPY.EXE /JOB:имя_задания.RCJ, выполняется иначе, чем C:\Windows\System32\ROBOCOPY.EXE /JOB:имя_задания.RCJ
Для корректного выполнения задания я указываю полный путь в вызове... Я нашел две версии Robocopy.exe (обе одинакового возраста, версии продукта и выполняют свою функцию правильно), поэтому я не знаю, какой путь без указания полного имени имеет другую версию исполняемого файла, но это неправильно.