2014-07-21 3 views
0

Powershell을 Subversion에 연결하면서 경로에 공백이 있기 때문에 Powershell이 ​​내 Subversion에 대한 URL을 완성하지 못하는 문제가 있습니다. 서브 버전 체크 아웃 창에 표시 무엇경로에 공백 포함, Powershell

$Source = C:\Users\'+env:USERNAME+'\Desktop\FileDownloadLocation' 
$SVNPath = 'http://subversion/svn/MainDirectory/SecondaryDirectory/Directory with a Space/subdirectory/finalLocation' 

TortoiseProc.exe /command:checkout /url:$SVNPath /path:$Source /closeend:2 

은 다음과 같습니다

'http://subversion/svn/MainDirectory/SecondaryDirectory/Directory ' 

내가 파괴에 대한 URL의 나머지 부분을 통과해야합니다. Powershell에서이 작업을 수행 할 수있는 방법이 있습니까? Powershell의 Subversion에 대한 URL 경로에 공백을 포함시켜야하는 이유는 무엇입니까?

+0

내 친구와 이야기 한 후 그는 공간 대신 ​​% 20을 추가하라고 지시했습니다. Subversion은 'http : // subversion/svn/MainDirectory/SecondaryDirectory/Directory % 20with % 20a % 20Space/subdirectory/finalLocation' 으로 보입니다. 이상하게 보일 것입니다. 그러나 올바른 파일/경로를 다운로드합니다. 파일 수 Powershell, 20 % 대신에 20 %가이 문제에 부딪 힐 수도있는 누군가는 저와 절대로 효과가있었습니다. – micsea64

답변

0

변수를 따옴표로 묶을 수 있어야합니다.

TortoiseProc.exe /command:checkout /url:"$SVNPath" /path:"$Source" /closeend:2 
+0

방금 ​​시도해 봤지만 불행하게도 그런 식으로 작동하지 않는 것 같습니다. 그것은 아직도 우주에서 잘립니다. 그러나 '% 20'대신 '% 20'을 사용하여 디렉토리를 생성 한 원래 포스트에 남겨진 주석 에서처럼 실제로 작동합니다. 응답 주셔서 감사합니다! – micsea64

0

이 게시물은 약간 오래된 것으로 알고 있지만, 아마도 다른 사람에게 도움이 될 것입니다. 근본적인 문제는 TortoiseProc.exe뿐만 아니라 많은 명령 줄 인수가있을 수 있습니다.

% 20 아이디어가 저를 위해 작동하지 않아 여기에 대체 솔루션이 있습니다. 여기서 문제는 TortoiseProc.exe (많은 다른 것들 중에서)는 공백이있는 경로를 따옴표로 묶어야한다는 것입니다. 그러나 기본적으로 PowerShell은 실제 인용 문자를 전달하지 않으며 그 안에있는 문자 만 전달합니다.

해결 방법 : "보통"따옴표 안에 이스케이프 된 따옴표를 포함하십시오. 그러면 다음과 같이 보입니다.

TortoiseProc.exe /command:checkout /url:"`"$SVNPath`"" /path:"`"$Source`"" /closeend:2 

내부 따옴표를 "이스케이프"하는 백틱 문자에 세심한주의를 기울이십시오. 이로 인해 해당 따옴표 문자가 문자 그대로 문자열의 일부로 전달되고 TortoiseProc.exe가 공백이있는 파일 경로와 URL을 제대로 처리합니다.

관련 문제