[..] Récupération d'un flux de sortie

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
lokidor
Niveau 3
Niveau 3
Messages : 36
Enregistré le : mar. 08 févr. 2011 10:57
Localisation : Sophia Antipolis
Status : Hors ligne

[..] Récupération d'un flux de sortie

#1

Message par lokidor »

Bonjour, c'est encore moi. Étant donné que le projet avec la fonction récursive n'avance pas, je fait autre chose.

En gros, c'est de l'archivage de log. Pour le moment j'en suis à extraire un fichier de log en .gz afin de vérifier de checksum.
Le soucis c'est que le checksum se vérifie à l'aide d'un outils appelé cksum.exe, ça ok, pas de problème à l'utilisation, mais je ne parviens pas a rediriger le flux de sortie. J'ai bien trouvé quelque chose sur le forum anglophone, mais ça marcha pas.... comme on dit chez moi :/

Code : Tout sélectionner

#Include <Array.au3>
#Include <File.au3>
#Include <Date.au3>
#include <Constants.au3>

$res=""
$path="****\Securite\Archivage FW"

$list_gz=_FileListToArray($path,"*.gz")

;~ _ArrayDisplay($list_gz)

For $cpt=1 to $list_gz[0]

    ;on copie les fichiers gz dans un rep à part
    FileCopy ( "..\"&$list_gz[$cpt], $path&"\DezipFile\"&$list_gz[$cpt],8 )

    ;on décompresse
    Run("..\Tools\gunzip.exe -f -N ..\DezipFile\"&$list_gz[$cpt])

    ;Et là on vérifie le checksum. La commande passe mais pas moyen de récupérer la sortie.
    $res_handler=Run("..\Tools\cksum.exe "&$list_gz[$cpt]&" >> "&$path&"\DezipFile\_check_Log.txt",@SW_MINIMIZE, $STDOUT_CHILD + $STDERR_CHILD)

    $res = StdoutRead($res_handler)

;~  MsgBox(64,"test",$res)
Next
 
Je me suis aidé de ce post : http://www.autoitscript.com/forum/topic ... _p__446624

Si quelqu'un sait quoi faire ou a trouvé un post...(rien trouvé sur ce forum ><')

Bien merci d'avance et Bon WE à tous!!!
Loki,

Le monde avance grâce aux paresseux!
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Récupération d'un flux de sortie

#2

Message par Tlem »

J'ai cherché (sur les trois ou quatre première page de notre ami) sans trouver, à télécharger le programme cksum.exe.
A première vue, je dirait qu'il s'agit d'un programme qui calcul le MD5 d'un fichier.

Si ma conclusion est exacte, alors il existe déjà du matos pour AutoIt.
Une petite recherche vous donnera le code d'un UDF permettant cela.
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
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Récupération d'un flux de sortie

#3

Message par sylvanie »

;Et là on vérifie le checksum. La commande passe mais pas moyen de récupérer la sortie.
$res_handler=Run("..\Tools\cksum.exe "&$list_gz[$cpt]&" >> "&$path&"\DezipFile\_check_Log.txt",@SW_MINIMIZE, $STDOUT_CHILD + $STDERR_CHILD)

$res = StdoutRead($res_handler)
La sortie est déjà redirigée dans un fichier, au mieux vous pouvez récupérer la sortie erreur.

Maintenant, si on enlève la redirection fichier, il faut boucler sur la lecture tant que le run n'est pas fini :

Code : Tout sélectionner

 ;Et là on vérifie le checksum. La commande passe mais pas moyen de récupérer la sortie.
    $res_handler=Run("..\Tools\cksum.exe "&$list_gz[$cpt],@SW_MINIMIZE, $STDOUT_CHILD + $STDERR_CHILD)

    $res = StdoutRead($res_handler)
 $res =""
While 1
    $res&= StdoutRead($res_handler)&@crlf
    If @error Then ExitLoop
Wend

 MsgBox(0, "STDOUT read:", $res)
 
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Récupération d'un flux de sortie

#4

Message par Tlem »

Même si c'est juste, l'utilisation d'un outil externe lorsque cela n'est pas nécessaire, n'est pas forcement un bon choix sur la pérennité du script. :roll:
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é".
lokidor
Niveau 3
Niveau 3
Messages : 36
Enregistré le : mar. 08 févr. 2011 10:57
Localisation : Sophia Antipolis
Status : Hors ligne

Re: [..] Récupération d'un flux de sortie

#5

Message par lokidor »

Après un période passé sur les bancs de l'école me revoilou :)

Merci pour vos réponses durant mon abscence. Il faut que je vérifie que c'est bien du md5 avant d'utiliser un outils interne :) mais merci du conseil Tlem.

Au pire si c'est un checksum maison ben... j'aviserais avec la solution de Sylvanie.

Sur ce bonne soirée et surement à demain.
Loki,

Le monde avance grâce aux paresseux!
Répondre