Powershell: после использования Out-File Robocopy добавит кучу тарабарщины в тот же файл журнала.

Мне нужно записать в определенный файл журнала и добавить результаты нескольких команд robocopy в конец этого файла.

Проблема в том, что когда robocopy предшествует out-file команда, robocopy записывает в лог кучу случайных символов. Я предполагаю, что журнал все еще используется предыдущей командой out-file, но из того, что я смог найти об этом, предполагается, что out-file автоматически создает, открывает и закрывает файлы.

Вот уменьшенный пример того, что я пытаюсь сделать:

"lala" | Out-File -filepath log.txt
robocopy .\source .\destination 1.txt /log+:log.txt

В приведенном выше примере журнал создается, и его содержимое выглядит следующим образом:

LALA ਍ ⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭⴭ ഭ † 佒佂佃奐 †† 㨠 ›†† 潒畢 瑳䘠 汩 ​​⁥ 潃祰映 牯圠 湩潤> 獷 ††††щаю 㨠䴠湯䴠牡>

и т.п.

Комментирование первой строки и использование только команды robocopy работает отлично, но если я добавлю первую строку, журнал снова испортится. У кого-нибудь есть идеи/мудрость для меня?

Спасибо за чтение. д:- Д


person dobbersp    schedule 06.03.2012    source источник


Ответы (1)


Просто закодируйте так же, как в журнале robocopy:

"lala" | Out-File -filepath log.txt -encoding utf8 -append

затем вы можете добавить журналы robocopy.

person CB.    schedule 06.03.2012
comment
Спасибо за помощь! Пара дополнительных замечаний для тех, кто просматривает эту ветку в будущем: используйте -encoding вместо -encode. Out-file говорит, что его кодировка по умолчанию — юникод, но похоже, что юникод по умолчанию не работает с /unilog+ robocopy: - person dobbersp; 06.03.2012