पावरहेल स्क्रिप्ट को उपयोगकर्ता द्वारा ctrl-c दबाकर आसानी से समाप्त किया जा सकता है। क्या पावरहेल स्क्रिप्ट को ctrl-c पकड़ने का कोई तरीका है और उपयोगकर्ता से यह पुष्टि करने के लिए कहें कि क्या वह वास्तव में स्क्रिप्ट को समाप्त करना चाहता था?क्या ctrl-c को पकड़ने का कोई तरीका है और उपयोगकर्ता से पुष्टि करने के लिए कहें?
5
A
उत्तर
2
चेकआउट this post on the MSDN forums।
[console]::TreatControlCAsInput = $true
while ($true)
{
write-host "Processing..."
if ([console]::KeyAvailable)
{
$key = [system.console]::readkey($true)
if (($key.modifiers -band [consolemodifiers]"control") -and ($key.key -eq "C"))
{
Add-Type -AssemblyName System.Windows.Forms
if ([System.Windows.Forms.MessageBox]::Show("Are you sure you want to exit?", "Exit Script?", [System.Windows.Forms.MessageBoxButtons]::YesNo) -eq "Yes")
{
"Terminating..."
break
}
}
}
}
आप पुष्टि के लिए एक जीयूआई MessageBox का उपयोग नहीं करना चाहते हैं, आप के बजाय पढ़ने के लिए होस्ट का उपयोग कर सकते, या $ Host.UI.RawUI.ReadKey() के रूप में डेविड ने अपने जवाब में पता चला है।
2
while ($true)
{
Write-Host "Do this, do that..."
if ($Host.UI.RawUI.KeyAvailable -and (3 -eq [int]$Host.UI.RawUI.ReadKey("AllowCtrlC,IncludeKeyUp,NoEcho").Character))
{
Write-Host "You pressed CTRL-C. Do you want to continue doing this and that?"
$key = $Host.UI.RawUI.ReadKey("NoEcho, IncludeKeyDown")
if ($key.Character -eq "N") { break; }
}
}
+0
तो मुझे इसे अपने सभी कोड के चारों ओर लपेटना होगा? –
+0
क्या यह अन्य कोड में हस्तक्षेप नहीं करेगा जो $ host.ui.rawui.readkey() का उपयोग करता है? –
संबंधित मुद्दे
- 1. क्या मौजूदा सक्रिय निर्देशिका उपयोगकर्ता को पकड़ने के लिए एमएस एक्सेस के लिए कोई तरीका है?
- 2. क्या printf() सही ढंग से एक सरणी (फ्लोट्स, कहें) प्रिंट करने का कोई तरीका है?
- 3. क्या स्ट्रिंग को छोटा करने का कोई और तरीका है?
- 4. क्या सबसे अच्छा तरीका है "उपयोगकर्ता द्वारा रद्द ऑपरेशन" को पकड़ने के लिए अपवाद
- 5. क्या कोई उपयोगकर्ता रूबी मणि इंस्टॉल करने के बाद संदेश मुद्रित करने का कोई तरीका है?
- 6. क्या विजुअल स्टूडियो में stderr और stdout को पकड़ने का कोई तरीका है?
- 7. क्या एचएटीओएम माइक्रोफॉर्मेट को सत्यापित करने का कोई तरीका है?
- 8. क्या UIView से WillRotateToInterfaceOrientation ईवेंट को पकड़ने का कोई तरीका है?
- 9. क्या थ्रेडएबॉर्ट अपवाद को पकड़ने और कोई कार्रवाई करने के लिए यह समझ में आता है?
- 10. क्या WebView.getSettings() से अलग उपयोगकर्ता एजेंट स्ट्रिंग को प्राप्त करने का कोई तरीका है। GetUserAgentString()?
- 11. क्या IE को ActiveX नियंत्रण को अनलोड करने के लिए मजबूर करने का कोई तरीका है?
- 12. उपयोगकर्ता पुष्टि
- 13. PHP में MySQL और डेटाबेस त्रुटियों को पकड़ने का कोई तरीका है?
- 14. क्या उपयोगकर्ता मोड से विंडोज नेटिव एपीआई फ़ंक्शंस को कॉल करने का कोई तरीका है?
- 15. क्या बैकबोन के साथ सभी गैर-मिलान वाले मार्गों को पकड़ने का कोई तरीका है?
- 16. कैसे .hover() प्रतीक्षा करने के लिए कहें?
- 17. क्या एक उपयोगकर्ता को स्थापित करने के लिए "यादृच्छिक" एमएसआई को मजबूर करने का कोई तरीका है?
- 18. क्या कुछ विशिष्ट समय के लिए कोई फॉर्म प्रदर्शित करने का कोई तरीका है
- 19. क्या TabControl.Items.CurrentChanging को रद्द करने का कोई तरीका है?
- 20. क्या सिस्टम की वास्तविक स्थिति को पकड़ने का कोई तरीका है। यादृच्छिक?
- 21. आईफोन: क्या FromNib लोड करने का कोई तरीका है और एक पुन: उपयोगकर्ता है?
- 22. क्या वेब पेज से ऑडियो के लिए आउटपुट डिवाइस का चयन करने का कोई तरीका है?
- 23. क्या कॉल को कैश करने का कोई तरीका है?
- 24. उपयोगकर्ता प्रोफाइल स्टोर करने के लिए कोई तरीका चुनना?
- 25. उपयोगकर्ता गियर को इंस्टॉल किए बिना उपयोगकर्ता का स्थान प्राप्त करने का कोई तरीका है?
- 26. क्या उपयोगकर्ता डिवाइस को बंद करने पर अधिसूचना प्राप्त करने का कोई तरीका है?
- 27. क्या Win32 से Win32 को कॉल करने के लिए कोई और दर्द रहित तरीका है?
- 28. फीचर शाखा पुनर्संरचना को स्वचालित करने के लिए मेवेन का उपयोग करने का कोई तरीका है?
- 29. क्या सबडोमेन से जेसन लोड करने का कोई तरीका है?
- 30. क्या ऐसा करने का कोई तरीका है?
मैं विपरीत करने का एक तरीका ढूंढ रहा हूं। पावरहेल हमेशा मुझे समाप्ति की पुष्टि करने के लिए कहता है। –
आप इसे करने के लिए कैसे मिला? –
यह ठीक है जब मैंने विंडोज 7 स्थापित किया था; ये मुझे पागल कर रहा है! –