de Cygwin attendre ne fonctionne pas avec l'utilisation des moustiquaires?
-
19-09-2019 - |
Question
J'ai besoin d'automatiser la commande 'net use' sur Cygwin.
La commande est 'utilisation / net user: "nom" \ quelque part. Et « Entrez le mot de passe « nom » pour se connecter à « prosseek »: ». Devrait entrer le mot de passe
Il fonctionne bien avec l'entrée de ligne de commande, et lorsqu'il est exécuté dans un fichier batch. Il ne fonctionne pas quand je fais comme suit script expect.
spawn net use /user:"name" \\prosseek\somewhere expect "Enter the password for 'name' to connect to 'prosseek':" send "password\n" interact
Je reçois un message d'erreur comme suit.
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)
- Q: Qu'est-ce qui pourrait être erroné
- Q: Quelqu'un peut commande MS quelque chose comme 'net use' de travailler avec Cygwin / expect
La solution
Vous ne pouvez probablement pas expect utiliser Cygwin avec des programmes non Cygwin; Cygwin émule ptys posix, tandis que les programmes Windows utilisent le code propre de traitement de terminal Windows, qui ne sait rien sur les pipelines qui s'attendent tente de lire et d'écrire.
Vous avez également échoué pour échapper à vos antislash attendre; notez que le message d'erreur donne une chaîne différente de celle que vous avez passé dans.
Autres conseils
Voici peut-être quelques suggestions:
Pouvez-vous explorer à \ prosseek \ quelque part? Si oui, je suppose que vous devrez peut-être les backslashs de proseek de \ quelque part.
La pièce de nom de réseau peut également indiquer qu'il ne peut pas résoudre le nom d'hôte.