1

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

命令是'net use /user:"name" \somewhere'。并且'输入'name'的密码以连接到'prosseek':'应输入密码。

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

spawn net use /user:"name" \\prosseek\somewhere
期望“输入'name'的密码以连接到'prosseek':”
发送“密码\n”
相互影响

我收到如下错误消息。

spawn net use /user:"name" \prosseek\somewhere
发生系统错误 67。

找不到网络名称。

发送:无效的生成 id (4) 在执行时 "发送"密码\n"" (文件“conpros”第 9 行)

  • 问:可能有什么问题?
  • 问:某些 MS 命令可以与 cygwin/expect 一起使用,例如“net use”吗?
4

2 回答 2

3

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

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

于 2010-02-10T17:06:03.987 回答
2

这里可能有一些建议:

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

网络名称片段也可能表明它无法解析主机名。

于 2010-02-10T17:04:27.150 回答