期望脚本无法匹配

Expect scripts cannot match

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

这可能是由于 Expect 在更高版本的 Windows 上的已知问题,不幸的是,这些问题的记录很少。预计 可能 在 Win7 或 Win8 上运行,可能不适用于 Win10。它通常在 32 位 Windows 上比在 64 位 Windows.

上运行得更好