Я делаю простой скрипт PowerShell для запуска с помощью планировщика заданий. Сценарий должен создать файл, запустить .exe-программу и перенаправить весь вывод во вновь созданный файл.
Вот как теперь выглядит мой скрипт:
# script.ps1
$LogFile = "C:\a\very\long\path\to\logfile.log"
C:
cd 'C:\path\to\exe\directory\' > $LogFile
.\program.exe > $LogFile
Программа выводит символы немецкого алфавита: Ää Öö Üü ß. Когда я запускаю программу без записи в файл, она выводит символ так, как должен: ä
, ü
. Однако, когда я перенаправляю вывод в файл журнала, ä
превращается в õ
, а ü
превращается в ³
.
Я пытался добавить chcp 65001
и $PSDefaultParameterValues = @{ '*:Encoding' = 'utf8' }
, но это не помогло. не имеет никакого эффекта.
Как ни странно, эта проблема возникает только в PowerShell. Подобный скрипт в Batch не имеет этой проблемы. Есть ли способ исправить это в PowerShell?
PS Моя версия PowerShell 5.1