2011-07-03 5 views
7

공백이있는 폴더에 프로세스의 인수를 전달하려고합니다. 폴더를 인식하지 못합니다. 내가 어떻게 할 수 있니?C# - 그 사이에 공백이있는 인수를 하나의 프로세스에 전달합니다.

string my_arg = @"C:\\program files\\my folder with spaces"; 

ProcessStartInfo proc = new ProcessStartInfo(); 

proc.FileName = @"C:\batches\my_batch.bat"; 

proc.Arguments = @my_arg ; 

Process.Start(proc); 

프로세스가 시작되지 않습니다. 이름에 공백이없는 폴더를 사용하면 작동합니다. 감사합니다.

+0

my_arg = "\" "+ my_arg +"\ "";와 같이 my_arg를 따옴표로 인코딩 해보십시오. 그게 효과가 있니? – Gleno

답변

1

공간과 foldernames로 다음을 수행하십시오 cmd를 인용한다 :

string my_arg = @"""C:\\program files\\my folder with spaces"""; 
+1

여전히 작동하지 않습니까? – pall

6

당신은 리터럴 문자열을 사용하고; 백 슬래시를 벗어날 필요가 없습니다. 실제로 그렇게하면 처음부터 리터럴 문자열을 사용할 필요가 없습니다.

반면에 공백은 특별한주의가 필요합니다. 인수를 따옴표로 묶으면 해결됩니다.

string my_arg = @"""C:\program files\my folder with spaces"""; 
+1

끝 인용 부호를 잊어 버렸습니다. – Guffa

2

이 시도 :

string my_arg = "\"C:\\program files\\my folder with spaces\""; 
0

문자열 my_arg = @ "\"C 시도하십시오 : \ 프로그램 파일 \ 공백 내 폴더를 \ | ";

ProcessStartInfo를을 proc = new ProcessStartInfo();

proc.FileName = @ "C : \ batches \ my_batch.bat";

proc.Arguments = @my_arg;

Process.Start (proc);

관련 문제