转义括号似乎在SendKeys中不起作用

时间:2018-08-13 11:25:12

标签: powershell sendkeys

将密钥发送到VSCode时,我没有得到{}:

$wshell = New-Object -ComObject wscript.shell;
$wshell.AppActivate('Untitled-1')
Sleep 1
$wshell.SendKeys('`{`}')
Sleep 1
$wshell.SendKeys('Hello World 2~')

enter image description here

1 个答案:

答案 0 :(得分:4)

在这种情况下,您不必逃避大括号,这不是PowerShell。是SendKeys。

要在SendKeys中使用文字括号,您必须像其他特殊字符一样将它们括在括号中。

$wshell.SendKeys('{{}{}}')

来自MSDN

  

加号(+),脱字号(^),百分号(%),波浪号(〜)和括号()对SendKeys具有特殊含义。要指定这些字符之一,请将其括在大括号({})中。例如,要指定加号,请使用“ {+}”。 要指定大括号字符,请使用“ {{}”和“ {}}” 。括号([])对SendKeys没有特殊含义,但是必须将其括在括号中。在其他应用程序中,括号确实具有特殊含义,当发生动态数据交换(DDE)时,括号可能很重要。

强调我。