Вопрос

Мне нужно автоматизировать команду "сетевое использование" в cygwin.

Команда называется "net use /user:"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.

Имя сети не может быть найдено.

Отправить:неверный идентификатор создания (4) при выполнении "отправить "пароль "" (строка 9 файла "conpros")

  • Q :Что может быть не так?
  • Q :Может ли какая-нибудь команда MS, что-то вроде "net use", работать с cygwin / expect?
Это было полезно?

Решение

Вероятно, вы не сможете использовать ожидание Cygwin с программами, отличными от cygwin;Cygwin эмулирует posix ptys, в то время как программы Windows используют собственный код обработки терминала Windows, который ничего не знает о конвейерах, из которых expect пытается считывать и записывать данные.

Вам также не удалось избежать обратной косой черты в expect;обратите внимание, что сообщение об ошибке выдает строку, отличную от той, которую вы передали.

Другие советы

Здесь могут быть некоторые предложения:

Можете ли вы где-нибудь поискать?Если это так, я полагаю, что вам, возможно, придется где-то экранировать обратную косую черту \\proseek\.

Фрагмент сетевого имени также может указывать на то, что он не может разрешить имя хоста.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top