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

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
zouzou
Niveau 2
Niveau 2
Messages : 22
Enregistré le : lun. 10 déc. 2007 17:39
Status : Hors ligne

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

#1

Message 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
Modifié en dernier par Tlem le dim. 23 nov. 2008 10:27, modifié 2 fois.
Raison : Ajout de la balise [..] & Mise a Jour Du Titre
Avatar du membre
DJSIR
Niveau 8
Niveau 8
Messages : 583
Enregistré le : mar. 01 juil. 2008 15:16
Localisation : 76, Le HAVRE (in the DJSIR World)
Status : Hors ligne

Re: envoyer une commande dans une fenetre dos

#2

Message 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.
$DJSIR = "1000110001010101011010000101001101001101001010101011010"
(ne décodez pas le binaire, ça veux rien dire)

[Func] ProgressBar, aller plus loin
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 415
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: envoyer une commande dans une fenetre dos

#3

Message par jl56 »

bonjour

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

a+ jl56
zouzou
Niveau 2
Niveau 2
Messages : 22
Enregistré le : lun. 10 déc. 2007 17:39
Status : Hors ligne

Re: envoyer une commande dans une fenetre dos

#4

Message 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")
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: envoyer une commande dans une fenetre dos

#5

Message par jbnh »

Code : Tout sélectionner

RunWait(@ComSpec & ' /c XXXXX')
mettre la commande voulue a la place de XXXX
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: envoyer une commande dans une fenetre dos

#6

Message 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.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 415
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: envoyer une commande dans une fenetre dos

#7

Message 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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#8

Message 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)
 
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 415
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

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

#9

Message 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
zouzou
Niveau 2
Niveau 2
Messages : 22
Enregistré le : lun. 10 déc. 2007 17:39
Status : Hors ligne

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

#10

Message 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
Répondre