使用组合键停止Powershell脚本

时间:2018-07-25 22:46:40

标签: powershell

我一直试图使用多个键来停止powershell中的循环。我想要一种不会被正常或意外按下的东西,例如Fn-F8或任何两个按键组合。我不想使用ctrl -c,因为该程序将在后台运行,并且在结束时必须进行一些“清理”。我下面的代码将通过按一个键结束,但是我已经知道了。 预先感谢。

$continue = $true
while($continue)
{
    if ([console]::KeyAvailable)
    {
        echo "Toggle with F12";
        $x = [System.Console]::ReadKey() 

        switch ( $x.key)
        {
            F8 { $continue = $false }   
        }
    } 
    else
    {
        # Prints a loop is ended
        Write-Output "1"
    }    
}

1 个答案:

答案 0 :(得分:1)

因此PSReadLine可以工作,但不适用于我的FN键。如果我使用Ctrl或其他功能,则可以正常工作。但是,如果我使用FN键,则会出现错误“键'F8'重复或无效的修饰符标记'fn'。”否则,下面的代码可以正常工作。我可能最终不得不改用Ctrl。

SELECT ID, 
       CASE WHEN OBJ_NAME = 'Col1' THEN Value END as Col1,
       CASE WHEN OBJ_NAME = 'Col2' THEN Value END as Col2
  FROM Table1