2015-02-05 3 views
0

일부 서버에서는 작업을 실행하는 ASP.NET 처리기가 있습니다. 이 작업은 10 분 동안 쉽게 실행할 수 있습니다. 이 스크립트로 Powershell을 사용하여 빌드 서버에서이 핸들러를 호출합니다.출력 부분 요청 Powershell with webrequest

$url = 'http://<joburl>' 

$response = Invoke-RestMethod -Uri ($url) -method GET 
Write-Output -InputObject $response 

URL을 호출하여이 작업을 실행하면됩니다. 하지만 내 일은 상태 메시지를 보여주고있어. 요청하는 동안이 메시지를 표시하기 위해 출력 버퍼를 지속적으로 플러시합니다. 그래서 브라우저에서 작업이 끝나기를 기다리고있을 때 이러한 메시지를 보여줍니다. 내 Powershell 스크립트는 요청이 완료된 후 이러한 메시지를 표시합니다. 요청이 아직로드 중일 때 이러한 상태 메시지를 표시 할 수있는 방법이 있습니까?

+1

반환 값을 var에 저장하고 출력하는 대신 Invoke-RestMethod -Uri ('http : // ') 메서드를 사용하십시오. GET – StephenP

+0

감사합니다! 그러나 불행히도 그것은 도움이되지 않았다. 나는 여전히 내 출력을 직접 인쇄하지 않습니다. –

답변

0

실시간으로보고 싶다면 결과를 변수에 저장하지 않았는지 확인하십시오. 다음은 invoke-webrequest에 대한 좋은 소개입니다. 여기 샘플이 있습니다.

이렇게하면 들어오는대로 데이터가 콘솔로 직접 출력되고 구문 분석됩니다.

Invoke-RestMethod -Uri "https://gdata.youtube.com/feeds/api/videos?v=2&q=Powershell" -Method GET 

이것은 모든 데이터를 변수에 저장하고 모든 데이터가 수신 될 때까지 기다린 다음 데이터를 콘솔에 출력합니다.

$result = Invoke-RestMethod -Uri "https://gdata.youtube.com/feeds/api/videos?v=2&q=Powershell" -Method GET 
$result 

이 샘플을 시도해보고 발생한 문제인지 확인하십시오.

0

Invoke-WebRequest이 필요합니다. 이를 통해 Content라는 속성으로 응답하는 객체를 얻을 수 있으므로 수행 할 수 있습니다.

$(Invoke-WebRequest <uri>).Content 

페이지에서 결과를 얻으려면.

희망 하시겠습니까?