2009-09-14 2 views
11

stdout/stderr이 리디렉션되지 않으면 스크립트가 제대로 실행됩니다.powershell 스크립트의 stdout 및 stderr를 리디렉션 할 때 오류가 발생했습니다.

stderr과 stdout 리디렉션을 모두 추가하면 다음 오류가 표시됩니다. 어떻게 피할 수 있습니까?

http://www.leeholmes.com/blog/WorkaroundTheOSHandlesPositionIsNotWhatFileStreamExpected.aspx

이 PowerShell을 v1.0을 버그이며, 경우에 발생합니다

% 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 
+0

코드의 모양은 어떻습니까? – JasonMArcher

+0

CURL.exe – ripper234

+0

을 호출하는 일부 코드는 내 대답을 결코 받아들이지 않았습니다. @ ripper234 – x0n

답변

15

리 홈즈 (PowerShell을 팀의 수석 개발자 중 하나) 블로그 게시물에 여기를 다룹니다

  • PowerShell은 명령을 사용하면 O를 리디렉션 cmd.exe를 사용했다
  • 일반 및 오류 출력 모두에게 발생 파일
  • 에 utput 당신은 출력을 병합 cmd.exe를 사용하고 오류는 해결 방법이

스트리밍합니다.

+0

기사 주셔서 감사합니다. 둘 다 해결 방법 (V1 및 V2 CTP)을 시도했으나 작동하지 않습니다 ("null 값 표현식에서 메서드를 호출 할 수 없습니다.") – ripper234

+0

어떤 버전을 사용하고 있습니까? 당신은 원래의 질문에서 말하지 않습니다. – x0n

+0

글쎄, 나는 V2를 오늘 사용하고 있다고 생각한다. V3에서도 볼 수 있을까? –

0

-Oisin 나는 한 번 "GetItemChild"적용을 위해 필요한 디렉토리에 여러 하드 링크 접합을했고,이 질문과 같은 오류가 발생했습니다.

접합부를 제거하면 문제가 해결됩니다.

관련 문제