Ce n'est pas vraiment une question qui concerne l'AU3, mais je me permet de vous la poser malgré ça. Je souhaiterais effectuer un simple curl dans un processus enfant et récupérer le flux STDOUT pour traitement, mais étrangement, cela ne fonctionne pas correctement.
Lorsque j'effectue la commande directement depuis cmd.exe (exemple : curl autoitscript.fr), ça fonctionne.
Cependant, lorsque j'exécute le code suivant :
#include <AutoItConstants.au3>
$ca_cmd = "curl autoitscript.fr"
Local $ca_iPID = Run("cmd.exe /c " & $ca_cmd, @WindowsDir, @SW_HIDE, $STDOUT_CHILD)
; Ou Local $ca_iPID = Run(@ComSpec & " /c " & $ca_cmd, @WindowsDir, @SW_HIDE, $STDOUT_CHILD)
ProcessWaitClose($ca_iPID)
Local $ca_output = StdoutRead($ca_iPID)
ConsoleWrite($ca_output)
$ca_cmd = "curl autoitscript.fr"
Local $ca_iPID = Run("cmd.exe /c " & $ca_cmd, @WindowsDir, @SW_HIDE, $STDOUT_CHILD)
; Ou Local $ca_iPID = Run(@ComSpec & " /c " & $ca_cmd, @WindowsDir, @SW_HIDE, $STDOUT_CHILD)
ProcessWaitClose($ca_iPID)
Local $ca_output = StdoutRead($ca_iPID)
ConsoleWrite($ca_output)
$ca_output vaut "'curl' n'est pas reconnu en tant que commande interne ou externe, un programme ex‚cutable ou un fichier de commandes."
A noter que j'exécute la commande et le programme sur le même ordinateur, avec la même configuration. Une idée de pourquoi ?
EDIT : Je préférerais utiliser curl en ligne de commande plutôt que via un UDF. Ce qui est étrange, c'est que NMAP de son coté fonctionne bien, programmé de la même manière.
EDIT 2 : Tiré de ce sujet, "Vous devez impérativement utiliser comspec pour exécuter des commandes internes (DIR, COPY, MD, RD, etc ...). Pour les commandes externes (ATTRIB, CACLS, XCOPY, NET, etc ...), comspec n'est pas indispensable.". Il me semble que CURL n'est pas une commande interne.. je me trompe peut être. Cependant, avec ou sans COMSPEC (en passant par cmd.exe), cela ne fonctionne toujours pas.