我正在尝试使用AutoIt实现启动PuTTY。
我有一个PuTTY配置会话,我将其命名为'testcom11'。它会保存PuTTY会话,其中包含 com11 , baudrate 等设置。
我在AutoIt中实现了如下行:
Run ("putty -load testcom11")
工作正常。我能够使用我的会话启动PuTTY并弹出PuTTY窗口,我可以在PuTTY窗口中键入“AT”命令。
现在我想要,而不是硬编码一个会话名称,从命令行传递会话名称,如下所示:
myAutoItprogram.exe testcom11
我把这一行放在AutoIt中:
$cmp = $CmdLine[1]
我可以看到它在我打印时正确传递(显示它,比方说,MsgBox)$cmp
,它显示testcom11
。
在下一行我有:
Run ("putty -load $cmp")
但是,AutoIt仅在窗口要求我加载会话时启动PuTTY。很明显,它没有阅读-load $cmp
选项。
正如你所看到的,我对AutoIt是新手,所以也许你可以看看它是否与它在运行窗口中处理$cmp
的方式有关。
答案 0 :(得分:2)
你的语法不好。
AutoIt可能类似于PHP,但是......
$a = "x"
$b = "$ay"
if you print $b you will get this text $ay
正确的方法是
$b = $a & "y"
现在$ b将打印 xy 。
所以在你的情况下它
Run("putty -load " & $cmp)
而不是
Run ("putty -load $cmp")
关于AutoIt命令行。有$CmdLineRaw
,它将获得整个命令行。为了将每个参数分开,您可以使用$CmdLine[n]
(每个参数索引替换n
)。
使用$CmdLineRaw
可能更好,因为您只传递一个参数,如果该参数中有空格,您可以避免可能的问题。