Cygwin di aspettare non funziona con uso netto?
-
19-09-2019 - |
Domanda
Ho bisogno di automatizzare il comando 'net use' su Cygwin.
Il comando è 'uso / net user: "nome" \ qualche parte'. E 'Immettere la password per 'nome' di connettersi a 'prosseek':'. Si prevede di inserire la password
Funziona bene con ingresso di linea di comando, e quando eseguito all'interno di file batch. Non funziona quando faccio uno script si aspettano come segue.
spawn net use /user:"name" \\prosseek\somewhere expect "Enter the password for 'name' to connect to 'prosseek':" send "password\n" interact
ottengo messaggio di errore come segue.
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)
- D: Che cosa potrebbe essere sbagliato
- D: Può qualcuno dei comandi MS qualcosa come 'net use' lavorare con Cygwin / aspettarsi
Soluzione
Probabilmente non è possibile utilizzare Cygwin di aspettare con programmi non Cygwin; Cygwin emula ptys POSIX, mentre i programmi di Windows utilizzano proprio codice di gestione del terminale di Windows', che non sa nulla delle condotte che si aspettano sta cercando di leggere e scrivere.
Hai anche riusciti a fuggire i tuoi backslash in aspettarsi; si noti che il messaggio di errore dà una stringa diverso da quello che avete passato in.
Altri suggerimenti
Qui potrebbe essere alcuni suggerimenti:
Si può esplorare a \ prosseek \ da qualche parte? Se quindi immagino che potrebbe essere necessario per sfuggire ai backslash \\ proseek \ qualche parte.
Il nome pezzo di rete potrebbe anche indicare che non è possibile risolvere il nome host.