Batch file 在使用Plink向串行端口发送登录和命令之间等待

Batch file 在使用Plink向串行端口发送登录和命令之间等待,batch-file,serial-port,plink,Batch File,Serial Port,Plink,我想通过PLINK中的串行端口进行连接。问题是代码(如下)不起作用,因为文件remove.txt一次发送完,而终端要求登录,然后才开始要求命令。有没有可能先登录然后执行命令文件?测试保存在串行会话中(com5波特115200) 命令: C:\PROGRA~1\PuTTY\plink -load test < C:\Users\qj2p70\Desktop\remove.txt 如果我理解正确,问题是串行端口上的设备丢弃了来得太早的输入 您可以通过在单个输入/行之间暂停来解决此问题。但是,

我想通过
PLINK
中的串行端口进行连接。问题是代码(如下)不起作用,因为文件
remove.txt
一次发送完,而终端要求登录,然后才开始要求命令。有没有可能先登录然后执行命令文件?
测试
保存在串行会话中(com5波特115200)

命令:

C:\PROGRA~1\PuTTY\plink -load test < C:\Users\qj2p70\Desktop\remove.txt

如果我理解正确,问题是串行端口上的设备丢弃了来得太早的输入

您可以通过在单个输入/行之间暂停来解决此问题。但是,您不能使用输入文件。您需要使用一个“程序”来生成输入,该程序可以暂停并将输入传送到
plink
。实现此类程序的一种简单方法是在批处理文件中使用复合语句:

(
  echo root
  timeout /t 5 > nul
  echo root
  timeout /t 5 > nul
  echo cd /cfg_usr/delphi/etc
  timeout /t 5 > nul
  echo rm vip_coding_yes
) | C:\PROGRA~1\PuTTY\plink -load test

上述操作将生成Windows CRLF线条端点。也许你的设备需要*nix-CR线路终端。您可以尝试以下PowerShell脚本(
script.ps1
):

然后像这样使用它:

powershell.exe -ExecutionPolicy Bypass -File script.ps1 | C:\PROGRA~1\PuTTY\plink -load test
Write-Host -NoNewline "root`n"
Start-Sleep 5
Write-Host -NoNewline "root`n"
Start-Sleep 5
# ...
powershell.exe -ExecutionPolicy Bypass -File script.ps1 | C:\PROGRA~1\PuTTY\plink -load test