Запуск консольной команды или exe файла, выполняемого в консоли в отдельном окне с последующей передачей туда команд

Имеется EXE-шник, который выполняется в консоли. Нужно, чтобы он запускался в отдельном от консоли самого скрипта окне, для этого я использовал команду os.startfile, но при запуске данный EXE-шник запрашивает имя файла. Можно ли как-то реализовать передачу туда команды с названием файла при помощи скрипта?

UPD. Сделал тестовую программу с названием testprog.exe, при вводе 'yes' выводит 'получилось', при вводе любой другой команды выводит 'не получилось' (в обоих случаях окно консоли не закрывается, так как в конце стоит input()). Нужно с помощью скрипта открыть эту программу в новом окне и передать туда команду, например, 'yes'. Я попытался использовать данный код, чтобы передать туда команду 'yes', но окно открылось и тут же закрылось, поэтому данный способ как минимум не совсем корректен.

cmd = 'testprog.exe'
p = subprocess.Popen(cmd, creationflags=subprocess.CREATE_NEW_CONSOLE, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
p.stdin.write(b'yes')   # Также пробовал p.communicate(input='yes')   
p.stdin.close()         #

UPD2 Небольшое пояснение, нет необходимости в получении потока вывода программы скриптом. Идеальная схема выполнения: я запускаю скрипт, появляется консоль, где написан результат в зависимости от переданной команды.


Ответы (1 шт):

Автор решения: crest1k

Мой фейл, при создании тестовой программы я упустил, что будет появляться ошибка при её вызове, связанная с тем, что для предотвращения закрытия окна я написал input(). Код тестовой программы:

ink = input('Введите команду ')
if ink == 'yes':
    print ('Получилось')
    input()
else:
    print ('Не получилось')
    input()

Если input() заменить на time.sleep(), то всё работает, используя команду p=subprocess.run(command, creationflags=subprocess.CREATE_NEW_CONSOLE, input=b'yes') (для вывода "получилось")

→ Ссылка