在PowerShell中优雅地停止
-
19-09-2019 - |
题
如何捕捉和处理<大骨节病>控制骨节病> + <大骨节病> C 骨节病>在PowerShell脚本?据我所知,我可以从一个小命令在v2中通过包括用于所述Powershell.Stop()
方法的覆盖这样做,但我不能找到在脚本中使用的类似物。
我目前经由end
块执行清理,但我需要执行一个脚本被取消(而不是运行完)额外的工作。
解决方案
您可以使用在这里PoshCode描述的方法
要点:
集
[console]::TreatControlCAsInput = $true
然后使用轮询用户输入
if($Host.UI.RawUI.KeyAvailable -and (3 -eq
[int]$Host.UI.RawUI.ReadKey("AllowCtrlC,IncludeKeyUp,NoEcho").Character))
其他提示
有关的文档的try-catch-最后说:
Finally块运行,即使您使用CTRL + C停止脚本。一个finally 块也运行如果Exit关键字从一个两难内停止脚本 块。
请参阅下面的例子。运行它,并通过按压ctrl-c
取消它。
try
{
while($true)
{
"Working.."
Start-Sleep -Seconds 1
}
}
finally
{
write-host "Ended work."
}
有也是可用于本上Stopping
一个$PSCmdlet
属性。
不隶属于 StackOverflow