Ошибка при перенаправлении stdout и stderr скрипта powershell
-
07-07-2019 - |
Вопрос
Скрипт работает нормально, когда stdout / stderr не перенаправляются.
Когда я добавляю перенаправление как stderr, так и stdout, я получаю следующую ошибку:Как я могу избежать этого?
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 19.4M 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
81 19.4M 0 0 81 15.9M 0 54.5M --:--:-- --:--:-- --:--:-- 55.8M
100 19.4M 0 0 100 19.4M 0 14.2M 0:00:01 0:00:01 --:--:-- 14.3M
100 19.4M 0 0 100 19.4M 0 8428k 0:00:02 0:00:02 --:--:-- 8454k
100 19.4M 0 0 100 19.4M 0 5924k 0:00:03 0:00:03 --:--:-- 5937k
100 19.4M 0 0 100 19.4M 0 4567k 0:00:04 0:00:04 --:--:-- 4575k
100 19.4M 0 50 100 19.4M 10 4291k 0:00:04 0:00:04 --:--:-- 835k
out-lineoutput : The OS handle's position is not what FileStream expected. Do not use a handle simu
ltaneously in one FileStream and in Win32 code or another FileStream. This may cause data loss.
+ CategoryInfo : NotSpecified: (:) [out-lineoutput], IOException
+ FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.OutLineOutputCom
mand
Решение
Ли Холмс (один из старших разработчиков команды powershell) рассказывает об этом здесь, в своем блоге:
http://www.leeholmes.com/blog/WorkaroundTheOSHandlesPositionIsNotWhatFileStreamExpected.aspx
Это ошибка в PowerShell версии v1.0, и она возникает, когда:
- команда PowerShell генерирует как обычный вывод, так и вывод с ошибкой
- вы использовали cmd.exe для перенаправления выходных данных в файл
- вы использовали cmd.exe для объединения потоков вывода и ошибок
Есть обходной путь.
-Ойсин
Другие советы
Однажды у меня было несколько жестко связанных переходов в каталоге, в которых должен был быть " GetItemChild " применяется и получил ту же ошибку, что и этот вопрос.
Удаление переходов решило проблему.
Не связан с StackOverflow