2010-02-10 19 views
1

我需要在cygwin上自動執行'net use'命令。cygwin的期望不適用於淨使用?

該命令是'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.

The network name cannot be found.

send: invalid spawn id (4) while executing "send "password\n"" (file "conpros" line 9)

  • 問:什麼可能是錯的?
  • 問:一些MS命令可以使用cygwin/expect嗎?

回答

3

您可能無法使用Cygwin對非cygwin程序的期望; Cygwin模擬posix ptys,而Windows程序使用Windows自己的終端處理代碼,該代碼對期望嘗試讀取和寫入的管道一無所知。

你也沒有想到逃避你的反斜槓;請注意,錯誤消息會提供與您通過的字符串不同的字符串。

2

這裏可能有一些建議:

你可以探索到\ prosseek \地方?如果是這樣,我想你可能需要在某個地方逃避\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

網絡名稱部分也可能表明它無法解析主機名。

相關問題