У меня есть скрипт powershell, который вызывается планировщиком задач. Определение задачи также перенаправляет вывод с помощью >> в файл журнала. Сценарий PowerShell вызывает консольную программу C #, которая генерирует выходные данные, длина которых превышает 80 символов. Тем не менее, результирующий вывод в файле журнала упаковывает все выходные данные из программы на C # в 80 символов. Обратите внимание, что переносится только вывод программы C #. Все остальные выходные данные скрипта (сгенерированные Write-Host) не переносятся. Также обратите внимание, что это перенос происходит только тогда, когда скрипт запускается планировщиком задач.
Вот цепочка вызова скрипта:
Определение задачи вызывает сценарий .cmd (RunWidthTest.cmd)
RunWidthTest.cmd:
powershell -File. \ RunReports.ps1 >> C: \ Log \ output.log
RunReports.ps1 (фрагмент):
Write-Host "========================================== ============= Запуск отчетов для файла дат для $ valueDate "
. \ ReportRunner.exe --ValueDate $ valueDate | Из-умолчанию
Обратите внимание, что передача outout в Out-Default требуется, чтобы избежать другой ошибки powershell, возникающей из-за того, что вывод исполняемого файла пытается выполнить запись в тот же поток, что и сценарий powershell, без ведома powershell (* 1023) * Write-Host: позиция дескриптора ОС не соответствует ожидаемой FileStream. Не используйте одновременно дескриптор
в одном FileStream и в коде Win32 или другом FileStream. Это может привести к потере данных. )
Таким образом, в данном случае строка, выводимая строкой Write-Host, не переносится, однако любой вывод, генерируемый ReportRunner.exe, переносится до 80 символов и происходит только при запуске с планировщиком задач! То же самое происходит при изменении точки, в которой происходит перенаправление, т. Е. При перенаправлении в определении задачи (командной строки задачи, а не внутри сценария)
Любые подсказки относительно того, почему это произойдет и как отменить это ограничение ширины.
Спасибо.