2013-06-06 3 views
1
$inputYN = Read-Host "(defaults to y in 10 sec) [y/n] "; 

사용자가 10 초 내에 입력하지 않으면 기본값 $inputYN은 "예"로 이동하고 다음 작업으로 이동해야합니다.Powershell - 10 초 동안 입력 대기

+2

부분은 여기에 있습니다 : http://stackoverflow.com/questions/150161/waiting-for-user-input-with-a-timeout –

+0

나는 파워 쉘에 새로운 오전이 작업을 수행하려고합니다. 이 작업에 대한 코드가 있으면 게시하십시오. 미리 감사드립니다. – Krish

답변

6

귀하의 질문에 흥미가 있습니다. 이 방법이 얼마나 효과가 있을지 잘 모르겠지만 몇 번 테스트하고 올바른 키를 다시 얻었습니다. 대문자를 입력하려고하면 너무 잘 작동하지 않습니다. 이보다 더 좋은 방법이 있어야합니다. PowerShell.com 또는 PowerShell.org과 같은 다른 포럼을 통해 다른 사람을 구할 수 있습니다. 대답의

function Get-Answer { 
    $counter = 0 
    while($counter++ -lt 100){ 
     if($Host.UI.RawUI.KeyAvailable){ 
      #You could check to see if it was the "Shift Key or another" 
      $key = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp") 
      break 
     } 
     else{ 
      Start-Sleep -Milliseconds 100 
      $key = $false 
     } 
    } 
    return ($key) 
} 

Write-Host 'Enter y/n' 
$answers = Get-Answer 
if($answers -eq $false -or ($answers.Character -eq 'y')){ 
    "Yes is default" 
} 
elseif($answers.Character -eq 'n'){ 
    "NO!!!!" 
} 
else{ 
    "Invalid Key $($answers.Character): `"YES`" is being used now." 
} 
+0

감사합니다, 잘 작동합니다. – Krish

+0

답변으로 표시하십시오. 고맙습니다. –

관련 문제