2014-02-06 2 views
1

소스에서 대상으로 파일을 복사하는 작은 응용 프로그램을 작성했습니다. 소스와 목적지라는 두 개의 매개 변수가 필요했습니다. 다음 명령은 정상적으로 작동합니다. 내가 " 내에서 매개 변수를 전달하고 \ 다음은 엉망으로 종료 할 때.NET 콘솔 응용 프로그램 인수에서 를 처리하는 적절한 방법은 무엇입니까?

test.exe "C:\source path" "D:\destination" 

내가 가진 문제입니다. 예를 들어

: \ 이후

test.exe "C:\source path\" "D:\destination" 

는 이스케이프 문자는 TEST.EXE이 문제를 해결하는 올바른 방법은 무엇, C:\source path" 대신 C:\source path\

그래서으로 첫 번째 인수를 가져옵니다.

심지어 가장 기본적인 샘플은 이상한 행동을 보여줍니다 - 명령 줄에서 전달 된 \""로 변환됩니다 :

static void Main(string[] args) 
{ 
foreach(var s in args) 
{ 
    System.Console.WriteLine(s); 
} 
} 
+2

'\'CMD에 대해 "문자를 이스케이프 '아닌'^'입니다 ... 코멘트 –

+0

@AlexeiLevenkov 덕분에, 나는 그것을 명확하게하기 위해 제목을 업데이트했습니다. – Anonymous

+0

다소 "잘 알려진"행동으로 밝혀졌습니다. (http://www.bing.com/search?q=c%23+command+line+quotes –

답변

0
test.exe @"C:\source path\" @"D:\destination" 

에서 @는 그대로 리터럴 문자열을 만든다.

축 어적 문자열 리터럴에서 구분 기호 사이의 문자는 그대로 해석되며 따옴표 - 이스케이프 시퀀스 만 예외입니다.

은 더 읽기 here on msdn

+1

아니요 ... 그렇지 않습니다. –

+0

@alexeilevenkov msdn – user2140261

+1

에서 링크가있는 업데이트 된 답변 실제로 C# 코드이면 명령 프롬프트가 아닙니다. 명령 줄에서 사용하려고 했습니까? –

관련 문제