You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PuTTY的commands.txt中模拟Ctrl+Y与Enter按键实现自动化?

解决PuTTY自动化脚本中模拟Ctrl+Y和Enter的问题

嘿,这个场景我之前帮朋友处理过,咱们来一步步搞定它~

首先要说明:PuTTY的GUI版本(putty.exe)在处理交互式输入时,用-m参数执行命令的方式有时候不太灵活,更推荐用PuTTY套件里的Plink(plink.exe)——这是专门为命令行自动化设计的工具,处理这类按键模拟会靠谱很多。

方法一:用Plink实现(推荐)

如果你已经安装了PuTTY,Plink通常和putty.exe在同一个目录里;如果没有,直接下载PuTTY套件就能拿到它。

2. 编写commands.txt

你需要在commands.txt里模拟两个操作:发送Ctrl+Y,然后按Enter。这里的关键是Ctrl+Y对应的ASCII字符是十进制25(十六进制0x19),你可以用两种方式输入它:

  • 方式A:文本编辑器直接插入
    用Notepad++这类编辑器的话,打开commands.txt,点击编辑→字符面板,找到ASCII码25的字符(显示为SUB),插入它;然后换行(这就模拟了Enter键)。如果之后还有要执行的命令,继续往下写就行。
  • 方式B:用命令生成控制字符
    如果你喜欢用命令行生成,可以在commands.txt里写:
    printf '\x19\n'
    # 这里\x19就是Ctrl+Y的十六进制表示,\n就是Enter
    # 后面可以追加你需要执行的其他命令,比如:
    # ls -l
    

3. 执行命令

把原来的putty.exe换成plink.exe,命令变成:

plink.exe -ssh user@ipaddress -pw password -m commands.txt > log.txt

方法二:坚持用putty.exe的管道方式

如果你不想换工具,可以用Windows的管道来直接发送按键:

(echo ^Y & echo.) | putty.exe -ssh user@ipaddress -pw password > log.txt

这里的^Y是实际的Ctrl+Y字符,输入方法是:在命令行里按住Ctrl+V,然后按Ctrl+Y,屏幕上会显示一个特殊的方块字符,这就对了。echo.则是模拟Enter键。

⚠️ 注意:这种方式可能不太稳定,因为PuTTY的GUI窗口加载速度可能和管道输入不同步,容易出现按键发送时机不对的情况,所以还是更推荐用Plink。

内容的提问来源于stack exchange,提问作者Plee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:12:27