Creat0R
Эта Функция в её текущем виде не предназначена для чтения из консоли, она задумана мной только для преобразования искажённого текста.
Т.е я заставляю консоль испортить кирилический текст, как она это делает обычно, но только в нужную нам сторону. Но если ты хочешь использовать StdoutRead() непосредственно по назначению, т.е для чтения стандартного потока из консоли...
Пример кода был взят из справки AutoIt v 3.2.2.0
$STDOUT_CHILD = 2 Необходима для получения StdoutRead() в первом цикле
$STDERR_CHILD = 4 Необходима для получения StderrRead() во втором цикле
Имена констант очевидно говорят об их предназначении (см. справка: StdoutRead и StderrRead)
Константы влияют только на возможность чтения потока из консоли. При этом возможность сохраняется до тех пор, пока ты делаешь запросы StdoutRead(), вплоть до закрытия самой консоли.
Код:

; Demonstrates StdoutRead()
#include <Constants.au3>
$foo = Run(@ComSpec & " /c dir foo.bar", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
MsgBox(0, "STDOUT read:", $line)
Wend
While 1
$line = StderrRead($foo)
If @error Then ExitLoop
;MsgBox(0, "STDERR read:", $line)
Wend
MsgBox(0, "Debug", "Exiting...")
Понятно, что разработчики при написании справки не подумали о нас русских и, как следствие, о существовании кирилицы.
Исправляем этот недостаток заменой первой строки в коде:
Код:

$foo = Run(@ComSpec & " /c graftabl 1251 | dir foo.bar", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)