如何捕捉和处理<大骨节病>控制 + <大骨节病> 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属性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top