PuTTY命令行自动执行文件中的串行命令

时间:2016-02-15 14:27:59

标签: batch-file serial-port command-line-interface putty plink

我正在尝试连接到串口并从文件中发送一系列命令。

首先,我通过以下方式联系:

  

PuTTY.exe -serial COM3 -sercfg 57600,8,n,1,N

E.g。我有一个名为commands.txt的文件,其中包含一系列我希望发送的串行命令。

我尝试了以下但是它无法工作:

  

PuTTY.exe -serial COM3 -sercfg 57600,8,n,1,N -m commands.txt

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

试试这样:

for /f "delims=" %%a in ('type commands.txt') do PuTTY.exe -serial COM3 -sercfg 57600,8,n,1,N -m %%a

答案 1 :(得分:0)

我用来定期向设备发送命令的另一种解决方案是使用PuTTYAutohotkey的组合。

对于初始设置,请配置PuTTY会话并保存。就我而言,我的名字是Oasis。

以下Autohotkey功能可以向已经打开的PuTTY会话发送命令。如果PuTTY未打开,它将启动已保存的会话。 oasis_putty_name()是PuTTY窗口打开后的名称,它取决于所选的COM端口。 location_putty()是PuTTY可执行文件的位置。这两个都可以硬编码,但我想保持变量与函数分开。

; Oasis Check --------------------------------------------------
oasis_check(){
putty_name := oasis_putty_name()

; Start PuTTY if it's not already running
IfWinNotExist, %putty_name%
{
    putty := location_putty()
    Run %putty% -load Oasis

    Sleep,1000
}

; Format Time Stamp
FormatTime, TimeString,,yyyy-MM-dd HH-mm-ss

; Record Oasis Values
ControlSend, , %TimeString%{ENTER}, %putty_name%
Sleep, 2000
ControlSend, , all?{ENTER}, %putty_name%
}

执行频率可以使用其他Autohotkey脚本控制,或者在我的情况下使用Windows任务管理器控制。