Page 1 sur 1

[R] Envoyer une commande dans une fenêtre DOS

Posté : jeu. 20 nov. 2008 07:25
par zouzou
bonjour
je souhaiterais savoir s'il existe un moyen d'envoyer une commande dans une fenetre dos lancée avec la commande suivante

Code : Tout sélectionner

RunWait(@ComSpec & " /c " & "cmd")
en gros, je voudrais, aprés avoir ouvert la fenetre, lancer un nslookup puis envoyer un {ENTER} pour voir le résultat

j'ai essayé "send" mais ça marche pas

merci pour votre aide

Re: envoyer une commande dans une fenetre dos

Posté : jeu. 20 nov. 2008 08:26
par DJSIR
Avant de poster un message lis les reglès du forum

- Rajoute la balise [..] devant le titre.
- Met une majuscule a ton titre.

Re: envoyer une commande dans une fenetre dos

Posté : jeu. 20 nov. 2008 14:02
par jl56
bonjour

je confirme que send fonctionne
je l'utilise dans mes scripts
pour faire un ping par exemple

a+ jl56

Re: envoyer une commande dans une fenetre dos

Posté : jeu. 20 nov. 2008 14:51
par zouzou
bonjour
pourrais tu me donner un exemple de script car je n'arrive pas à le faire fonctionner de mon coté

mon script:

Code : Tout sélectionner

Runwait("C:\WINDOWS\system32\cmd.exe")
sleep (1000)

WinWaitActive("C:\WINDOWS\system32\cmd.exe")
sleep (500)
send("nslookup")

Re: envoyer une commande dans une fenetre dos

Posté : jeu. 20 nov. 2008 15:05
par jbnh

Code : Tout sélectionner

RunWait(@ComSpec & ' /c XXXXX')
mettre la commande voulue a la place de XXXX

Re: envoyer une commande dans une fenetre dos

Posté : jeu. 20 nov. 2008 23:07
par Tlem
@zouzou
Merci d'éditer vos messages pour les mettre en conformité avec les règles du forum.
1er message : Balise + Titre
2iem message : Balise de code.

Re: envoyer une commande dans une fenetre dos

Posté : ven. 21 nov. 2008 18:50
par jl56
bonjour

exemple pour la commande ping

Code : Tout sélectionner

;tu lances la fenêtre dos
run ("cmd.exe")

;une petite pause pour que la fenêtre s'affiche
sleep(500)

;envoie de la séquence de touches
send("ping.exe "&@IPAddress1&"{enter}")

;une petite pause pour voir le résultat
sleep(10000)

;je ferme la fenêtre dos
send("exit{enter}")

 
voila c'est tous simple

a+ jl56

Re: [..] Envoyer une commande dans une fenetre dos

Posté : ven. 21 nov. 2008 23:16
par Tlem
@jl56
Pourquoi faire si compliqué ?
Ceci suffit largement :

Code : Tout sélectionner

Run(@ComSpec & " /c " & 'Ping.exe 192.168.1.1', "", @SW_SHOW)
Comme je me doute que zouzou cherche à récupérer les informations du Nslookup, voici une solution parmi d'autres :

Code : Tout sélectionner

Local $foo = Run(@ComSpec & " /c " & 'nslookup 127.0.0.1', "", @SW_HIDE, $STDOUT_CHILD)
Local $line

While 1
    $line &= StdoutRead($foo)
    If @error Then ExitLoop
Wend
MsgBox(0, "Résultat du NsLookup : ", $line)
 

Re: [..] Envoyer une commande dans une fenetre dos

Posté : sam. 22 nov. 2008 09:43
par jl56
bonjour tlem


tu as raison, je n'utilise plus cette méthode
mais je voulais décomposé pour plus de compréhension

a+ jl56

Re: [..] Envoyer une commande dans une fenetre dos

Posté : dim. 23 nov. 2008 07:45
par zouzou
merci pour vos réponse

pour ma part je débute dans AUTOIT et c'est vrai qu'il y a un nombre incroyable de possibilitées (de quoi s'y perdre)

en tout cas merci beaucoup