[R] Commandes DOS et AutoIt

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

[R] Commandes DOS et AutoIt

#1

Message par blacksoul305 » dim. 20 mai 2012 17:27

Bonsoir,

je viens vous demander de l'aide car c'est un peu nouveau pour moi mais j'aimerai quand même bien ne pas m'arrêter là.

Comme dit dans le titre, ça concerne les commandes MS-DOS à lancer avec l'AutoIt. Utiliser le CMD, ça m'arrive pas souvent et quand j'le fais avec AutoIt, c'est pour envoyer un utilisateur sur un lien :

Code : Tout sélectionner

_RunDOS("start http://www.google.fr")
Or j'ai envie maintenant d'utiliser maintenant des commandes qui, normalement, lorsque le CMD est bien ouvert, affichent des résultats comme souvent c'est le cas pour des commandes réseaux par exemple : "nbtstat -n".

J'aimerai savoir s'il est possible d'avoir ces résultats et pouvoir les traiter. Je me suis dis : "Bon, bah j'ai qu'à placer cette commande dans une variable et on va voir ce qu'elle me retourne." Elle me retourne 0.

Code : Tout sélectionner

#include <Process.au3>

;$cmds = RunWait(@ComSpec & "/c " & "nbtstat -n","",@SW_HIDE) ; me retourne "erreur : 1"
;$cmds = _RunDOS("nbtstat -n") ; me retourne "erreur : 0"
If $cmds = 0 Then
    MsgBox(16,"lol","erreur : " & @error)
Else
    MsgBox(64,"lol",$cmds)
EndIf
Je vous remercie d'avance !
Modifié en dernier par blacksoul305 le sam. 02 juin 2012 11:36, modifié 1 fois.
Étudiant en 2ème année de Licence Informatique.

Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1564
Enregistré le : lun. 18 avr. 2011 14:21
Localisation : La Quatrième Dimension
Contact :
Status : Hors ligne

Re: [..] Commandes DOS et AutoIt

#2

Message par TT22 » dim. 20 mai 2012 17:51

Il existe une petite astuce qui permet de faire ce que tu veux :
En fait il suffit d'écrire le résultat de la commande dans un fichier, puis de le lire....
► Afficher le texte
TT22
[/b][/size]
Image

Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Commandes DOS et AutoIt

#3

Message par blacksoul305 » dim. 20 mai 2012 17:56

J'allais dire : "pas bête", mais j'ai essayé avec plusieurs commande et j'ai un blanc.
Étudiant en 2ème année de Licence Informatique.

ani
Modérateur
Modérateur
Messages : 1826
Enregistré le : lun. 23 juil. 2007 11:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Commandes DOS et AutoIt

#4

Message par ani » dim. 20 mai 2012 19:20

Bijour, voici un bout de code

Code : Tout sélectionner

#include <Constants.au3>
$CMD = Run(@comspec & " /c nbtstat -n","","",$STDIN_CHILD + $STDOUT_CHILD)
Local $data
While True
    $data &= StdoutRead($CMD)
    If @error Then ExitLoop
    Sleep(25)
WEnd
ConsoleWrite($data)
bon bein voilà, si y a un prob genre des caractèreq non conforme à votre langue, y a un code a rajouter, pour le traitement genre je recherche <20> woupiiii '-.-'
je te laisse le faire ;)

bonne continuation

Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Commandes DOS et AutoIt

#5

Message par blacksoul305 » dim. 20 mai 2012 19:32

Salut,

j'te remercie pour ce code super efficace, mais je pense que le truc dans lequel je me lance est un peu trop compliqué. En effet, si je lance cette commande de façon invisible, c'pour en fait pouvoir traiter toutes les données, et j'aimerai récupérer seulement le nom des hôtes ! Tu n'aurais pas un code à me fournir ou bien une piste à suivre ?

Merci encore !

EDIT : Dans ton code, c'est quoi ?

Code : Tout sélectionner

$data [color=#FF0000]&[/color]= StdoutRead($CMD)
Étudiant en 2ème année de Licence Informatique.

Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1564
Enregistré le : lun. 18 avr. 2011 14:21
Localisation : La Quatrième Dimension
Contact :
Status : Hors ligne

Re: [..] Commandes DOS et AutoIt

#6

Message par TT22 » dim. 20 mai 2012 20:09

blacksoul305 a écrit :Dans ton code, c'est quoi ?

Code : Tout sélectionner

$data [color=#FF0000]&[/color]= StdoutRead($CMD)
Ça veut dire, tu ajoute StdoutRead($CMD) à la suite de la variable $data
Ça revient à faire :

Code : Tout sélectionner

$data = $data & StdoutRead($CMD)
Et ça fonctionne aussi avec les opérations :

Code : Tout sélectionner

$i+=1
Ajoute 1 à la variable $i :wink:
TT22
[/b][/size]
Image

Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Commandes DOS et AutoIt

#7

Message par blacksoul305 » dim. 20 mai 2012 20:11

Okay, thanks bro!

EDIT : C'est un merci :lol:
Étudiant en 2ème année de Licence Informatique.

ani
Modérateur
Modérateur
Messages : 1826
Enregistré le : lun. 23 juil. 2007 11:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Commandes DOS et AutoIt

#8

Message par ani » dim. 20 mai 2012 21:20

Heu non du tout, moi j'utilisais dans le temp une commande supplementaire.
exemple : je recherche juste les lignes avec le caractère "<" ou ">" ect

Code : Tout sélectionner

Nbtstat -n | findstr ">"
tu peux faire un split sur "<" ce qui retournera le nom bios.

Code : Tout sélectionner

$Split = strinsplit($data,"<",1)
consolewrite($Split[1])
je ne peut aider + sur ce coup (de 1 il est tard et j'ai aucun outils a par ms-dos ^^")

Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Commandes DOS et AutoIt

#9

Message par blacksoul305 » sam. 02 juin 2012 11:36

Oui, je vais aller au lit car je commence à sécher de toute façon, j'peux plus trop réfléchir non plus.

Merci de ton aide, je regarderai de plus près demain !

EDIT : Désolé pour la remonter de ce post. Merci Ani, j'ai pu regarder le code plus près et c'est ce que je cherchais.
Étudiant en 2ème année de Licence Informatique.

Répondre