도스 프로그램(콘솔 프로그램)에서 > 이나 >> 는 인자가 아니라 콘솔의 표준출력(stdout)을 리다이렉션시키기
위한 지시자로서, 콘솔의 셸(command.com이나 cmd.exe)가 컴맨드라인 명령을 해석하면서 직접 처리합니다.
다시 말해, 콘솔 프로그램이 실행될 때 인자로 넘어가지 않는다는 말입니다.
따라서 리다이렉션을 시키기 위해 실행시킬 프로그램 뒤에 >> 지시자를 쓴다고 해도 결코 리다이렉션되지
않습니다. CreateProcess 함수는 콘솔 셸을 거치지 않고 직접 실행시키는 함수이니까요.
이 문제의 해결책에 대해서도 역시 몇년전에 C++Builder쪽의 팁 게시판에 올린 적이 있습니다.
델파이로 수정해서 새로 올렸으니 참고하시구요.
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=del_tip&no=52
앞서서 답변드렸던 실행시킨 프로그램의 종료를 알아내는 코드와 적당히 조합해서 해보시기 바랍니다.
그럼...
초보빌더 님이 쓰신 글 :
: 우선 감사드리고요
: CreateProcess('d:\test prg\load.exe', nil, @sec, @sec, true, 0, nil, nil, start, pinfo)
: 이부분의 두번째 매개변수에 'c:\test dat\a.dat >> c:\test.txt' 라고 변환해서 주어봤습니다.
: 에러없이 끝!이라는 메시지가 나오는데요.
:
: c:\test.txt는 생성이 되지 않아있네요.
: 이런 경우는 어떻게 해야할까요?
:
:
|