$a = [char]65 $w1 = New-Object -ComObject wscript.shell; $w1.AppActivate('Untitled - Notepad') Sleep 1 Write-Host $a $w1.SendKeys($a);
在PowerShell脚本中,我尝试使用SendKeys
命令,通过将variables$a
作为值为65
的[char]
来使字母A
出现在记事本中。 当我运行该行时,这给了我预期的结果:
Write-Host $a
( A
出现在PowerShell中)
但是,每当下面的行运行:
$w1.SendKeys($a);
数字65
被放入记事本而不是A
为什么在给定相同的参数时,这两行会产生不同的输出,在这两种情况下我能做些什么来使variables$a
输出字符A
?
因为char
是一个整数类型,所以SendKeys
将$a
当作一个整数。 您可以通过直接传入65
来获得相同的行为:
$w1.SendKeys(65); # Sends "65" to Notepad
要解决此问题,您需要显式给SendKeys
一个字符串参数。 最简单的方法是将$a
括在引号中:
$w1.SendKeys("$a");