2014-09-08 6 views
6

के बाद प्रॉम्प्ट समाप्त हो गया है, मैं उपयोगकर्ता कार्रवाई के लिए एक प्रोप प्रदर्शित करने की कोशिश कर रहा हूं और यदि कोई कार्रवाई नहीं की जाती है तो प्रॉम्प्ट क्लोज और टीएच स्क्रिप्ट जारी रहती है। यहाँ मेरी कमांड प्रॉम्प्ट संवाद configuraitonपावरहेल - प्रॉम्प्ट उपयोगकर्ता एक्सएक्स सेकेंड


$yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes","" 
$no = New-Object System.Management.Automation.Host.ChoiceDescription "&No","" 
$cancel = New-Object System.Management.Automation.Host.ChoiceDescription "&Cancel","" 
$choices = [System.Management.Automation.Host.ChoiceDescription[]]($yes,$no,$cancel) 
$caption = "Caption message here" 
$dialogmessage = ("Do you want to do something?:`n") 

$timer = #set some value 
#While the value is grater than zero keep the prompt open 

while($timer -gt 0) 
{ 
    $result = $Host.UI.PromptForChoice($caption,$dialogmessage,$choices,0) 

    if($result -eq 0){Write-Host "Yes was selected"} 

    if($result -eq 1){Write-Host "No was selected"} 

    if($result -eq 2){Write-Host "Canceled by user.";exit} 
} 

मैं देखा है और इंटरनेट नीचे मैं इस सी # में लागू है लेकिन मुझे के जीवन के लिए मैं powershell के लिए सबसे अच्छा तरीका निर्धारित नहीं कर सकता देखा है। किसी भी सहायता के लिए धन्यवाद।

धन्यवाद

संपादित करें: धन्यवाद नूह, यहाँ अद्यतन कोड है, यह भी और भी अधिक कॉम्पैक्ट है!

  $prompt = new-object -comobject wscript.shell 
      $answer = $prompt.popup(("Do you want to do something?`n",5,"title",3)    
      if($answer -eq 6) {Write-Host "Yes was selected"} 
      if($answer -eq 7) {Write-Host "No was selected"} 
      if($answer -eq -1) {Write-Host "Timed out} 
      if($answer -eq 2) {Write-Host "Canceled by user.";exit}  

उत्तर

6

ये रहा ... मेरे पुराने लिपियों

#Value Description 
#0 Show OK button. 
#1 Show OK and Cancel buttons. 
#2 Show Abort, Retry, and Ignore buttons. 
#3 Show Yes, No, and Cancel buttons. 
#4 Show Yes and No buttons. 
#5 Show Retry and Cancel buttons. 
#http://msdn.microsoft.com/en-us/library/x83z1d9f(v=vs.84).aspx 

$a = new-object -comobject wscript.shell 
$intAnswer = $a.popup("Question?",2,"Title",4) #first number is timeout, second is display. 

#7 = no , 6 = yes, -1 = timeout 
+0

वाह, मैं wscript.shell comobject उपयोग करने के लिए कभी नहीं, हालांकि में से एक के बाहर इस खोदा। धन्यवाद नूह! –

+0

आपका स्वागत है, खुशी है कि मैं मदद कर सकता हूं –

संबंधित मुद्दे