Page 1 sur 1

[R] Problème d'écriture dans cmd

Posté : jeu. 09 avr. 2015 13:51
par caropost
Bonjour à tous,

Je souhaite automatiser la configuration d'un switch et pour cela j'ai d'abord besoin de me connecter en série avec Putty ou Plink, envoyer quelques commandes, lancer l'invité de commande puis me connecter en FTP depuis un dossier placé sur le pc et transférer des fichier du pc au switch.
Pour cela, je souhaite vérifier ce que me retourne Plink/putty et l'invité de commande afin de ne pas envoyer trop tôt des commandes pour ne pas faire n'importe quoi.
La première partie de mon automatisation fonctionne : je peux me connecter en série via Plink, attendre que le port série renvoie "login" pour envoyer mon login etc. Je suis un peu en aveugle car rien ne s'affiche. Pour savoir où le programme en est, je dois ouvrir le fichier de log mais bon, ça va quand même.
Là où ça se complique c'est lorsque je souhaite faire la même chose mais avec l'invité de commande : je lis bien ce qu'il y a dedans mais impossible d'envoyer la commande souhaitée...

J'utilise des fonctions décrites dans ce lien : http://www.autoitscript.com/forum/topic ... k-wrapper/
Je les ai adapté à mes besoins. J'utilise ces fonctions (en commentaires les lignes qui me servent pour plink) :
► Afficher le texte
Voici comment je l'utilise :
► Afficher le texte
Je reçois bien "Microsoft Windows XP", mes 2 fenêtres "OK" et "OK bis" s'ouvrent bien mais après, je ne lis plus rien... Dans ma fonction _Expect, la fenêtre "Test" s'ouvre vide...

Sauriez-vous m'aider ? Je pense que l'invité de commande n'a pas pris en compte le _SayPlus("dir")...

Re: [..] Problème d'écriture dans cmd

Posté : jeu. 09 avr. 2015 20:03
par orax
J'ai fait des tests mais je ne sais pas d'où vient le problème. Il y a quand même le @CR dans la fonction _SayPlus qui me semble bizarre. Je l'ai remplacé par un @CRLF. À ma connaissance le retour à la ligne communément utilisé sous Windows est CR LF.
Les modifications sont commentées de cette manière : ; ### ... Avec ces modifs il n'y aura plus besoin d'ouvrir le fichier de log pour voir ce que plink renvoie.
► Afficher le texte
► Afficher le texte#include <PlinkWrapper_Test_cmd.au3>

Re: [..] Problème d'écriture dans cmd

Posté : ven. 10 avr. 2015 09:57
par caropost
Je te remercie pour ta réponse :)

Pour la partie sur cmd, je lance le script, je ne vois rien se passer puis je vois qu'il se termine mais je n'ai pas vu où est-ce que je pouvais vérifier ce qu'il s'est passé...

Re: [..] Problème d'écriture dans cmd

Posté : ven. 10 avr. 2015 11:29
par caropost
J'ai mis des MsgBox et activé le log donc je vois bien qu'il se passe bien quelque chose, merci :)
N'y aurait-il pas un moyen pour avoir quelque chose de visuel ? Je veux dire voir ce qu'il se passe en temps réel, un peu comme si on écrivait vraiment sur la console...
Parce que là, concrètement, si je n'active pas les log et que je n'ouvre pas ce fichier ou bien que je ne mets pas de MsgBox, je ne vois absolument rien passer...

EDIT : J'ai fais quelques tests, le ping et le dir fonctionnent. J'ai adapté le script pour tester les vrais lignes qui vont être intégrées au script final (la partie où je me connecte en FTP sur le switch) et ça bloque après la rentrée du user...
► Afficher le texte

Re: [..] Problème d'écriture dans cmd

Posté : ven. 10 avr. 2015 14:35
par orax
caropost a écrit :Pour la partie sur cmd, je lance le script, je ne vois rien se passer puis je vois qu'il se termine mais je n'ai pas vu où est-ce que je pouvais vérifier ce qu'il s'est passé...
C'est affiché dans la console de SciTE. Il faudrait donc lancer le script depuis SciTE (touche F5).
caropost a écrit :_Expect("C:\Documents and Settings\administrator\Desktop\Switch>") === la ligne est lue mais pas reconnue ===
C'est normal, dans _Expect c'est StringRegExp qui est utilisé pour trouver la chaîne. L'antislash \ est un caractère spécial donc il faut le doubler ou utiliser \Q \E pour ne pas interpréter les caractères spéciaux.

Code : Tout sélectionner

_Expect("C:\\Documents and Settings\\administrator\\Desktop\\Switch>")
_Expect("\QC:\Documents and Settings\administrator\Desktop\Switch>\E")
Une alternative est de remplacer tous les StringRegExp par des StringInStr pour faire une recherche de texte simple ; dans ce cas il n'y aura pas besoin de doubler les \.

Re: [..] Problème d'écriture dans cmd

Posté : ven. 10 avr. 2015 15:38
par caropost
Ah merci ! Effectivement, avec \Q et \E ça fonctionne mieux ^^
Et effectivement, il y a bien la console qui apparaît quand je tape F5 :)
Seul point bloquant qui reste : la connexion FTP... J'ai réécrit tout ça un peu au propre histoire d'y voir un peu plus clair et de n'avoir que ce qui est utile pour la partie cmd et j'ai mis ça dans un même "fichier" :
► Afficher le texte
Voici le fichier de log que j'obtiens :
► Afficher le texte
Et ce jusqu'à ce que j'arrête le script ou le timeout...

Re: [..] Problème d'écriture dans cmd

Posté : ven. 10 avr. 2015 18:49
par orax
Avec les fonctions _FTP_* d'AutoIt ça n'irait pas ? Ça me semblerait plus pratique.

Re: [..] Problème d'écriture dans cmd

Posté : lun. 13 avr. 2015 11:20
par caropost
J'avais oublié ces fonctions ^^' Et je ne devais pas taper les bons mots clés sur internet parce qu'il ne me proposait pas ces fonctions...

J'ai donc commencé à tester avec ses fonctions et je n'arrive pas à me connecter... Lorsque je suis connecté en série avec PuTTY et que je lance mon script, il m'informe que l'authentification a échouée et que l'utilisateur est anonyme...
► Afficher le texte
Je dois également "activer" le binaire et le hash, je ne sais pas si c'est faisable avec ces fonctions ou si ça le fait "automatiquement"...

EDIT : c'est bon, j'ai réussi à me connecter, le switch devait être un peu capricieux, après un redémarrage il a accepté que je me connecte en FTP via mon script :) Maintenant, je me lance dans la recherche de vérification que je suis bien connectée ou que j'envoie bien mes fichiers et si non afficher un message d'erreur :)

Re: [..] Problème d'écriture dans cmd

Posté : mer. 13 mai 2015 14:44
par caropost
Bonjour,

Je reviens vers vous après un moment sans être venue. J'ai dû faire un autre projet en laissant de côté celui-ci du coup je n'ai pas trop avancé mais j'ai un nouveau problème...

C'est toujours sur le problème de FTP. J'utilise le bout de code suivant :
► Afficher le texte
J'ai un peu modifié le fichier FTPEx.au3 pour que s'il y a un problème, j'ai un message d'erreur qui apparaît :
► Afficher le texte
Le problème c'est qu'il n'arrive pas à passer ma commande "bin"... Pour le reste, pas de soucis mais ça, ça ne fonctionne pas... J'ai pourtant testé pas mal de choses sans succès...
Sauriez-vous m'aider ?

Re: [..] Problème d'écriture dans cmd

Posté : mer. 13 mai 2015 17:23
par orax
Il faut éviter de modifier les UDFs dans le dossier d'installation d'AutoIt. En plus, dans le cas présent ce n'était pas nécessaire. Il suffisait de tester @error.
Ce code indiquera plus précisément quelle est l'erreur.
► Afficher le texte

Re: [..] Problème d'écriture dans cmd

Posté : ven. 29 mai 2015 10:40
par caropost
Désolée pour le retard, j'étais reparti sur ce sujet avant de me reconcentrer sur le 2ème mais là je repasse sur ce sujet :)

Merci pour l'info, je testerai :)

Je n'ai pas modifié l'UDF en lui-même mais j'ai copié son contenu dans un autre fichier comme ça j'ai les fichiers qui sont venus avec l'installation qui restent "propres" ;)

Je n'ai plus besoin de ce sujet puisque j'utilise les fonction _FTP pour arriver à mes fins :)

Re: [..] Problème d'écriture dans cmd

Posté : mar. 16 juin 2015 10:48
par caropost
orax a écrit :Il faut éviter de modifier les UDFs dans le dossier d'installation d'AutoIt. En plus, dans le cas présent ce n'était pas nécessaire. Il suffisait de tester @error.
Ce code indiquera plus précisément quelle est l'erreur.
► Afficher le texte
J'ai suivi ton conseil (oui, après un certain temps, je l'avoue) et il me met cette erreur :

Code : Tout sélectionner

500 Command not recognized
alors que c'est une commande qui fonctionne très bien en manuel...

Re: [R] Problème d'écriture dans cmd

Posté : mar. 16 juin 2015 11:46
par jbnh
A mon avis tu fais une mauvaise utilisation de l'UDF.

FTPCommand c'est pour envoyer des commandes FTP
cfr https://fr.wikipedia.org/wiki/Liste_des_commandes_ftp

Aussi
Je n'ai plus besoin de ce sujet puisque j'utilise les fonction _FTP pour arriver à mes fins :)
Donc merci de ne plus répondre à ce sujet qui est en Résolu depuis un bout de temps