일괄 처리를 사용하여 실행중인 콘솔 앱에 입력을 쓰는 동안 오류가 발생했습니다.
Aug 19 2020
배치 파일로 실행하려는 exe 파일이 있습니다.
Exe 파일은 입력을 세 번 요청하는 타사 콘솔 앱입니다.
그래서 빈 줄, someText 및 someOtherText로 채우고 싶습니다.
(echo. echo someText echo someOtherText) | call config.exe remove
하지만이 오류가 발생합니다.
Cannot read keys when either application does not have a console or when console input has been redirected. Try Console.Read.
문제가 될 수 있습니다. 최소한 검색 방향을 알려주십시오.
다음과 같은 간단한 명령을 실행하려고해도 동일한 오류가 발생합니다.
echo. | call config.exe remove
답변
1 Maximus Aug 27 2020 at 08:53
귀하 config.exe
는 리디렉션을 전혀 수락하지 않습니다. 실제 콘솔 버퍼가 필요합니다.
- 자동화하려는 경우 다른 콘솔 응용 프로그램을 만들 수 있습니다.
- CreateProcessW를
config.exe
사용하여 시작 - WriteFile (ASCII, 구분 된 줄) 또는 WriteConsoleInputW (유니 코드 문자가 필요한 경우 )를 사용하여 STD_INPUT_HANDLE에 줄 쓰기
\n
- 쓰기가 완료된 후
config.exe
종료를 기다렸다가 종료 코드를 반환하십시오.
또 다른 간단한 옵션은 ConEmu 터미널입니다 (저는 저자입니다). 이 GuiMacro 스크립트 쉽게 콘솔에서 사용할 수있다. 따라서 프롬프트에서 실행하거나 배치 파일 (ConEmu에서 실행)로 래핑 할 수 있습니다.
ConEmuC.exe -GuiMacro print "\ nsomeText \ nsome Other Text \ n"& config.exe 제거