Powershell腳本可以通過按ctrl-c輕鬆終止。有沒有一種方法讓Powershell腳本抓住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
}
}
}
}
如果你不想使用GUI消息框的確認,你可以使用讀 - 主機,而不是,或$ 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. 有沒有辦法告訴HtmlUnit抓住所有依賴
- 2. 有沒有辦法讓我從Facebook抓住用戶的個人興趣?
- 3. 有沒有辦法抓住editText的日期和時間
- 4. Symfony2 - 有沒有辦法掛鉤到用戶確認事件?
- 5. 爲什麼葡萄抓住我沒有要求的罐子?
- 6. 有沒有辦法使用ControlSend或其他東西,而不抓住焦點
- 7. 有沒有辦法確定Firebase用戶的UID是否有效?
- 8. 在線登錄過程中,有沒有辦法確認用戶的僱主?
- 9. SearchRequestBuilder:有沒有辦法要求返回所有字段?
- 10. 有沒有辦法抓住身體標記中的變量並將其用在頭標記中
- 11. 用戶有沒有辦法看到PHP?
- 12. Laravel - 抓住所有雄辯的請求
- 13. 有沒有辦法讓用戶選擇要輸入的變量?
- 14. e.preventDefault - 有沒有辦法做到默認?
- 15. 抓住用戶沒有訂單與MySQL和PHP,簡化這個
- 16. 有沒有辦法鉤住或攔截CoGetClassObject和/或CoCreateInstance調用?
- 17. 有沒有辦法改善這個要求?
- 18. 有沒有辦法編寫JavaScript接口要求?
- 19. 有沒有辦法要求Youtube顯示前貼式廣告?
- 20. 有沒有辦法讓MS Access抓取當前的Active Directory用戶?
- 21. 雙擊沒有被OnMouseEvent(JavaFX2)抓住
- 22. 出現InvalidOperationException沒有被抓住
- 23. WCF沒有ASPNetCompatibility模式抓住weboperationcontext
- 24. 嘗試抓住沒有錯誤陳述
- 25. 有沒有辦法在golang/gin中關閉客戶端請求?
- 26. 有沒有辦法讓客戶端發送請求時的url
- 27. 抓住所有網站抓住所有重新渲染css
- 28. 有沒有辦法確定用戶加入了哪些Mulit用戶會議(MUC)?
- 29. Jquery .show沒有正確的動畫,並沒有抓住目標中的所有鏈接
- 30. 完全卡住 - 需要模型,但沒有可用 - 怎麼辦?
我正在尋找一種方法來做相反的事情。 Powershell總是要求我確認終止。 –
你是怎麼做到的? –
這就是我安裝Windows 7時的情況;它讓我瘋狂! –