il y a deux causes :
la première et sirecte, est que consoleread n'attend pas qu'on tappe, elle renvoie de suite.
Il faut donc l'inclure dans un while et sortir en cas d'erreur ou de retours chariot (sinon on ne sort pas ...).
cf cette modification qui marchera sous Scite ou un autre editeur gérant une console:
► Afficher le texte
Code : Tout sélectionner
#AutoIt3Wrapper_Change2CUI=Y
ConsoleWrite("Please enter data:")
$console = ""
Sleep(500)
While 1
$consoletmp = ConsoleRead()
If @error Then ExitLoop
If $consoletmp=@CRLF Or $consoletmp=@LF Or $consoletmp=@CR Then ExitLoop
$console&=$consoletmp
Sleep(100)
WEnd
$buttoncode = MsgBox(2, "From console I read", $console)
If $buttoncode = 3 Then
$button = "abort"
ElseIf $buttoncode = 4 Then
$button = "retry"
ElseIf $buttoncode = 5 Then
$button = "ignore"
EndIf
ConsoleWrite(@CRLF & "The " & $button & " button was pressed in the Msgbox." & @CRLF)
2eme point : cmd.exe n'a pas un mode console aussi coopératif que Scite. Pour le stdout, c'est OK, mais pour le stdin il faut passer par l'astuce donnée par le fichier d'aide :
echo Hello! | ConsoleRead.exe
En supposant que l'exe compiler s'appelle "ConsoleRead.exe" biensûr, et là je pense que c'est le cas du cmd que tu souhaites ...
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.