我需要在 cygwin 上自动执行“net use”命令。

命令是'net use /user:"name" \somewhere'。而'输入'name'的密码连接到'prosseek':'预计会输入密码。

它适用于命令行输入以及在批处理文件中运行时。当我按如下方式制作预期脚本时,它不起作用。

spawn net use /user:"name" \\prosseek\somewhere
expect "Enter the password for 'name' to connect to 'prosseek':"
send "password\n"
interact

我收到如下错误消息。

spawn net use /user:"name" \prosseek\somewhere
System error 67 has occurred.

找不到网络名称。

发送:无效的生成 ID (4) 执行时 “发送”密码 “” (文件“conpros”第 9 行)

  • 问:可能出了什么问题?
  • 问:某些 MS 命令(例如“net use”)可以与 cygwin/expect 一起使用吗?
有帮助吗?

解决方案

您可能无法将 Cygwin 的 Expect 与非 cygwin 程序一起使用;Cygwin 模拟 posix ptys,而 Windows 程序使用 Windows 自己的终端处理代码,该代码对期望尝试读取和写入的管道一无所知。

你也未能逃脱期望中的反斜杠;请注意,错误消息给出的字符串与您传入的字符串不同。

其他提示

这里可能有一些建议:

你能探索到\proseek\某个地方吗?如果是这样,我想您可能需要在某个地方转义反斜杠 \\proseek\ 。

网络名称部分还可能表明它无法解析主机名。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top