C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[74775] Re:Re:Re:콘솔(도스)프로그램실행할때 경로에 공백이 있으면 실행이 안됩니다. ㅠㅠ
빌더(TWx) [builder] 3428 읽음    2018-01-22 18:38
뽀뽀중 님이 쓰신 글 :
: 답변 감사 드립니다.
:
: 폴더에 공백이 있을 경우 따옴표로 감싸면 실행파일 경로에 공백이 있을 경우도 도스 프로그램이 실행되는 것을 검색을 통해 알게 되었습니다.
:
: 이부분도 테스트를 해 보았습니다만,,,  입력파일 경로에 공백이 있는 경우 "" 로 감싼 경우도 에러가 발생 했습니다.
: 이 부분도 제 질문글에 설명을 하였습니다.
:
: 도스에서 직접 몇몇 경우에 대해 테스트를 했는데,,,
: 실행할경우는 ""로 감싼 경우는 경로에 공백이 있어도 실행이 되었습니다.
: 다만, 입력파일 경로는 공백이 있을 경우 "" 로 감싸도 에러가 발생하였습니다.
:
: 아마도 도스 프로그램이 포트란으로  1998년경  제작된 프로그램이라 입력자료 경로에 공백이 있을경우 공백을 무시하는 것 같습니다.
: 즉, 오류 수정이 불가능할것 같아... 입력파일 경로에 공백이 있으면, 경고 메세지를 보여 주는 것으로 변경 하였습니다.
:
: 프로그래밍을 누군가에게 배워본적 없이 인터넷 검색만으로 해결하다 보니,
: 기초가 많이 부족 합니다. 많은 이해 부탁 드립니다.
:
: 답변이 많은 도움이 되고 있습니다. 감사 합니다.


답변:


wchar_t *cmdLine = L"\"C:\\Some Directory\\Test.exe\"";



위와 같이 패스 경로에 공백이 있을 경우 쿼테이션 마크를 주므로써 처리가 가능 하죠?

Test.exe 라는 콘솔모드 프로그램이...

int main(int argc, wchar_t **argv)
{
    for (int i = 0; i < argc; ++i)
        printf("%s\n", argv[i]);
    _gettche();
    return 0;
}

위와 같이 프로그램에 전달된 코맨드 라인 옵션을 프린트 한다고 해 봅시다.

그리고...

Test.exe 프로그램에...

"C:\\User Dir"


와 같이 공백이 들어있는 패스경로를 커맨드라인 옵션으로 CreateProcess() API를 이용해서 전달 하려면...
마찬가지로 아래와 같이 쿼테이션 마크를 넣어주면 되요.

	wchar_t *cmd = L"\""\"C:\\Some Directory\\Test.exe\\" \"C:\\User Dir\"";
	STARTUPINFO si = { sizeof(si), 0};
	PROCESS_INFORMATION pi = {};
	bool b = CreateProcess(0, cmd, 0, 0, false, 0, 0, 0, &si, &pi);
	CloseHandle(pi.hProcess);
	CloseHandle(pi.hThread);



Test.exe 콘솔모드 프로그램은
argv 첫번째 인수로 Test.exe 프로그램의 full-path 를 프린트 할 것이고
두번째 파라미터로 공백이 포함된 커맨드 라인 옵션을 하나의 옵션으로 인식해서 'C:\User Dir' 를 프린트 할 것임.

콘솔모드 프로그램이냐 아니냐의 차이 때문이 아님.

+ -

관련 글 리스트
74747 콘솔(도스)프로그램실행할때 경로에 공백이 있으면 실행이 안됩니다. ㅠㅠ 뽀뽀중 3510 2018/01/17
74754     Re:콘솔(도스)프로그램실행할때 경로에 공백이 있으면 실행이 안됩니다. ㅠㅠ 빌더(TWx) 3278 2018/01/22
74758         Re:Re:콘솔(도스)프로그램실행할때 경로에 공백이 있으면 실행이 안됩니다. ㅠㅠ 뽀뽀중 3493 2018/01/22
74775             Re:Re:Re:콘솔(도스)프로그램실행할때 경로에 공백이 있으면 실행이 안됩니다. ㅠㅠ 빌더(TWx) 3428 2018/01/22
74779                 Re:Re:Re:Re:콘솔(도스)프로그램실행할때 경로에 공백이 있으면 실행이 안됩니다. ㅠㅠ 뽀뽀중 3748 2018/01/22
74782                     Re:Re:Re:Re:Re:콘솔(도스)프로그램실행할때 경로에 공백이 있으면 실행이 안됩니다. ㅠㅠ 빌더(TWx) 3424 2018/01/23
74784                         감사 합니다. 뽀뽀중 3295 2018/01/23
74780                     Re:Re:Re:Re:Re:콘솔(도스)프로그램실행할때 경로에 공백이 있으면 실행이 안됩니다. ㅠㅠ 오랑캐꽃 3904 2018/01/22
74783                         감사 합니다. 뽀뽀중 3555 2018/01/23
74751     Re:콘솔(도스)프로그램실행할때 경로에 공백이 있으면 실행이 안됩니다. ㅠㅠ 초보심재민 3381 2018/01/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.