在使用 Plink 将登录名和命令发送到串行端口之间等待
Wait between sending login and commands to serial port using Plink
我想在PLINK
中通过串口连接。问题是代码(下面)不起作用,因为文件 remove.txt
是一次性发送的,而终端正在请求登录并且在它开始请求命令之前。有没有可能先登录然后执行命令文件? test
保存串口会话(com5 baud 115200)
命令:
C:\PROGRA~1\PuTTY\plink -load test < C:\Users\qj2p70\Desktop\remove.txt
remove.txt
文件:
root
root
cd /cfg_usr/delphi/etc
rm vip_coding_yes
如果我没理解错的话,问题是串口上的设备丢弃了一个来得太早的输入。
你可以通过在个人 inputs/lines 之间暂停来解决这个问题。但是你不能使用输入文件。您需要使用 "program" 生成输入,该 "program" 可以执行暂停并将该输入通过管道传输到 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
):
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
我想在PLINK
中通过串口连接。问题是代码(下面)不起作用,因为文件 remove.txt
是一次性发送的,而终端正在请求登录并且在它开始请求命令之前。有没有可能先登录然后执行命令文件? test
保存串口会话(com5 baud 115200)
命令:
C:\PROGRA~1\PuTTY\plink -load test < C:\Users\qj2p70\Desktop\remove.txt
remove.txt
文件:
root
root
cd /cfg_usr/delphi/etc
rm vip_coding_yes
如果我没理解错的话,问题是串口上的设备丢弃了一个来得太早的输入。
你可以通过在个人 inputs/lines 之间暂停来解决这个问题。但是你不能使用输入文件。您需要使用 "program" 生成输入,该 "program" 可以执行暂停并将该输入通过管道传输到 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
):
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