Cygwin erwarten mit net use nicht funktioniert?
-
19-09-2019 - |
Frage
Ich brauche den 'net use' Befehl auf Cygwin zu automatisieren.
Der Befehl ist 'net use / user: "name" \ irgendwo'. Und: ‚Geben Sie das Kennwort für‚name prosseek‘verbinden‚‘:‘. Erwartet wird, das Passwort einzugeben
Es funktioniert gut mit Kommandozeilen-Eingabe, und wenn innerhalb Batchdatei ausführen. Es funktioniert nicht, wenn ich ein Skript erwarten machen wie folgt.
spawn net use /user:"name" \\prosseek\somewhere expect "Enter the password for 'name' to connect to 'prosseek':" send "password\n" interact
Ich bekomme Fehlermeldung wie folgt.
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)
- F: Was könnte falsch sein
- Q: Kann einige MS-Befehl so etwas wie 'net use' mit Cygwin arbeiten werden / erwarten
Lösung
Sie können sich wahrscheinlich nicht Cygwin verwenden, um mit Nicht-Cygwin-Programme erwarten; Cygwin emuliert Posix ptys, während die Windows-Programme eigene Terminalsteuerung Code Windows verwenden, die nichts über die Pipelines weiß, die von und Schreiben zu lesen erwarten versucht.
Sie haben versäumt, auch Ihre Schrägstriche in Expect zu entkommen; Beachten Sie, dass die Fehlermeldung eine andere Zeichenfolge von dem einen gibt Sie in übergeben.
Andere Tipps
Hier könnten einige Vorschläge sein:
Können Sie erforschen zu \ prosseek \ irgendwo? Wenn ja ich mir vorstellen, dass Sie die Schrägstriche entkommen müssen möglicherweise \\ proseek \ irgendwo.
Der Netzwerkname Stück könnte auch bedeuten, dass es nicht den Host-Namen auflösen kann.