将AutoIt中的命令行参数传递给PuTTY

时间:2013-10-27 16:14:15

标签: putty autoit

我正在尝试使用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的方式有关。

1 个答案:

答案 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可能更好,因为您只传递一个参数,如果该参数中有空格,您可以避免可能的问题。