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
War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top