Что нового

Процессы Взаимодействие с WSL (StdoutRead / ConsoleWrite)

vovsla

Осваивающий
Сообщения
607
Репутация
36
Как можно получить результат выполнения команды в WSL?
Если написать в батнике
Код:
wsl -e pwd
pause

то в консоли будет вывод текущего каталога, но не получается это получить в автоите
ни выполнением команды ни с помощью запуска батника я не могу получить выходные данные
Код:
global $res
$res = Run(@ComSpec & ' wsl.exe -e pwd', @ScriptDir, @SW_SHOW, 3)
;$res = Run(' 1.bat', @ScriptDir, @SW_SHOW, 3)

While 1
    Sleep(100)
    $STDOut = StdoutRead($res)
    If $STDOut <> '' Then
        ConsoleWrite($STDOut)
    EndIf
WEnd


Как получить результат выполнения wsl в автоит?
Хорошо ещё узнать нюансы по отправке данных в запущенный wsl
Сообщение автоматически объединено:

Обнаружил, что при попытке запуска wsl будет сообщение "wsl не является внутренней или внешней командой, исполняемой программой или пакетным файлом."
Код:
Run(@ComSpec & ' /k c:\Windows\System32\wsl.exe -e pwd', @WindowsDir & '\System32', @SW_SHOW)

как с ним работать?
Сообщение автоматически объединено:

оказалось, что wsl может работать только с х64, поэтому достаточно добавить в скрипт
Код:
#AutoIt3Wrapper_UseX64=Y
 
Последнее редактирование:
Верх