$a = [char]65
$w1 = New-Object -ComObject wscript.shell;
$w1.AppActivate('Untitled - Notepad')
Sleep 1
Write-Host $a
$w1.SendKeys($a);
在PowerShell脚本中,我尝试使用SendKeys
命令通过将变量A
强制转换为$a
并将值[char]
显示在记事本中65
。当我运行该行时,这给了我预期的结果:
Write-Host $a
(PowerShell中出现A
)
但是无论何时运行以下行:
$w1.SendKeys($a);
将数字65
放入记事本而不是A
。
为什么这两行在给定相同参数时会产生不同的输出?如何在两种情况下使变量$a
输出字符A
?
答案 0 :(得分:2)
由于char
是整数类型,SendKeys
将$a
视为整数。您可以直接传递65
来获得相同的行为:
$w1.SendKeys(65); # Sends "65" to Notepad
要解决此问题,您需要明确地给SendKeys
一个字符串参数。最简单的方法是将$a
括在引号中:
$w1.SendKeys("$a");