2010-04-15 4 views
11

이름과 매개 변수에 공백이있는 시스템 호출을 할 수 없습니다. 예를 들어 :windows 명령에 공백이있는 C 시스템 호출

system("c:\\program files\\something\\example.exe c:\\my files\\example.txt"); 

나는 방법을 알고 모든면에서 탈출 시도, 아무것도 작동하지 않습니다. 나는 시도했다 :

system("\"c:\\program files\\something\\example.exe\" \"c:\\my files\\example.txt\""); 

system("c:\\program^ files\\something\\example.exe c:\\my^ files\\example.txt"); 

어느 일을. 나는 여전히 'c : \ program'을 내부 또는 외부 명령으로 인식하지 않는다.

이것은 정말로 나를 미치게 만든다. 나는 그 안에 공백이있는 매개 변수를 호출하고 전달해야한다. 짧은 표기법을 사용할 수없는 이유는 내가 들어 가지 않을 것이기 때문입니다. 내가 '로 시도

여전히. 나는 공간 주위에 전부 따옴표와 따옴표를 퍼팅 시도하고 그래도 문제가 해결되지 작동하지 않습니다, 대신 따옴표 "로 인용한다.

사람이 알고 있나요 그것을 제대로 편집

답변

25

: 확인, 그것을 알아 냈다 system() 호출로 스테핑으로 : 당신은 내부적으로 cmd를/Cyourinput를 호출한다는 사실 때문에 모든 일 따옴표의 추가 설정이 필요

그래서이 나를 위해 작동합니다

system("\"\"c:\\program files\\internet explorer\\iexplore.exe\" \"www.stackoverflow.com\"\""); 

혼란의 비트가, 그렇지?

+0

Ooops 나는 슬래시를 especaping했습니다. 시스템에서 작동해야하는 이유는 _open 등을 사용하기 때문입니다. – myforwik

+0

편집 됨 - 큰 따옴표를 사용하십시오. – EMP

+0

+1 큰 따옴표가 나를 위해 작동 –