我在 Windows 上使用 ActiveState 的 ActiveTcl 社区版,并安装了 Expect 包。我尝试过编写自己的脚本,从各种网站下载一些脚本,甚至从 ActiveState 网站本身复制和粘贴它们,但我总是遇到同样的问题。我的脚本可以完美地发送命令并按预期配置网络设备,但只能通过将发送与睡眠时间相结合。每当我尝试用期望匹配任何东西时,我总是得到相同的东西(使用 exp_internal 1 时):期望:“”(spawn_id exp4)是否匹配全局模式“AnyString”?不。正则表达式也是如此:期望:“”(spawn_id exp4)是否匹配正则表达式“AnyString”?不。它似乎唯一有效的是使用单个通配符:expect:does "" (spawn_id exp4) 匹配全局模式“*”?是的 expect: set expect_out(0,string) "" expect: set expect_out(spawn_id) "exp4" expect: set expect_out(buffer) "" 但是通配符、文字或正则表达式的其他组合似乎不起作用。我看过视频和截图。据我所知,expect 应该迭代每个字符,直到找到匹配项,但它实际上只是在“”处停止,超时,然后继续到下一行。如果expect命令在Expect中不起作用,我确信我做的事情显然根本上是错误的,但我只是不知道是什么。就好像它无法读取任何终端输出,但发送命令工作正常,所以我知道它已连接。无论我尝试什么终端程序(telnet、plink、netcat 等)都有同样的问题。Expect 似乎真的是一个很棒的自动化工具,所以我非常感谢任何可能帮助我克服这个问题的建议。我完全期待收到答案后会感到愚蠢。