2016-12-13 6 views
0

을 시작되지 않습니다 나는 다음과 같은 PowerShell을 5 프로그램이 있습니다PowerShell은 작업

 
Id  Name   PSJobTypeName State   HasMoreData  Location    Command 
--  ----   ------------- -----   -----------  --------    ------- 
1  Job1   BackgroundJob Completed  True   localhost   timeout.exe 10 /NOBREAK 

timeout.exe가 표시되지 않습니다 : 나는 그것을 실행하면

$job = Start-Job -ScriptBlock {timeout.exe 10 /NOBREAK} 
Wait-Job $job 

, 그것은 다음과 같은 출력이 즉시 종료를 작업 관리자.

왜 종료 10 초 전에 기다리지 않습니까? 작업에서 timeout.exe 10 /NOBREAK을 호출 할 때 작업에서 Start-Sleep 10을 호출하는 것과 마찬가지로 10 초를 기다립니다.

동일한 문제 (수면)를 해결하는 다른 방법을 찾고 있지 않지만, 특히 에 대한 대답은이 프로그램의 동작 방식과 같습니다.

+0

'호출-명령 -scriptblock을 {timeout.exe 10/NOBREAK}' – 4c74356b41

+0

내 말은'시작 - 작업 - ScriptBlock {Invoke-Command-ScriptBlock {timeout.exe 10/NOBREAK}} ' – 4c74356b41

+0

Invoke-Command를 작업으로 사용하여 백그라운드 작업으로 실행하고 _Receive-Job_을 사용하여 백그라운드 작업으로도 수신 할 수 있습니다. 'Invoke-Command -ScriptBlock {timeout.exe 10/NOBREAK} -AsJob' –

답변

1

여기서 문제는 timeout.exe가 Ctrl + C를 잡을 때 배경 작업에서 작동하지 않는 입력을 리디렉션한다는 것입니다. 분명히하고 싶은 모든 것이 잠이라면 Start-Sleep이 작동합니다.

당신은 수행하여 작업의 출력 및 오류 메시지를 볼 수 있습니다

Receive-Job 1