MSBuild의 Exec 명령에서 따옴표를 이스케이프 처리하는 방법


131

네트워크 드라이브를 스크립트의 드라이브 문자에 매핑하는 MSBuild 스크립트를 작성하려고하지만 불행히도 대상 폴더의 경로에 포함 된 공간이 포함되어 있습니다. 포함 된 공간으로 인해 매핑이 실패하고 경로 주위에서 따옴표를 이스케이프 할 수 있는지 알 수 없습니다. 큰 따옴표를 시도했지만 MSBuild는 그것을 좋아하지 않습니다 (또는 Windows XP는 그것을 좋아하지 않습니다). 누구나이 짐승을 코딩하는 방법을 알고 맵이 작동합니까?

<Exec Command="net use x: \\ofmapoly703\c$\program files\ar\iap /user:$(UserID) $(Password)"
WorkingDirectory="c:\"
ContinueOnError="false"
/>

물론 포함 된 공간은 "프로그램 파일"에서 발생합니다.

답변:


192

속성 값 안에 &quot;보려는 큰 따옴표를 인코딩하는 데 사용하십시오 .netCommand

<Exec Command="net use x: &quot;\\ofmapoly703\c$\program files\ar\iap&quot; /user:$(UserID) $(Password)" 
WorkingDirectory="c:\" 
ContinueOnError="false" 
/> 

7
Command="quot;$(PathWithTrailingBackslash)&quot;"as로 렌더링 "Path\With\Trailing\Backslash\"하고 \"에 대한 명령 줄 이스케이프 시퀀스 "이므로 다음과 같은 모든 인수가 엉망 이 되기 때문에 도움이되지 않습니다 .
jnm2

@ jnm2 &quot;두 번째 다음 에 다른 것을 추가 할 수 없습니까? Command="quot;$(PathWithTrailingBackslash)&quot;&quot;"
TetraDev

@TetraDev 그런 다음 백 슬래시가 여전히 누락되고 닫히지 않은 따옴표가 있습니다. 그 효과는 확실하지 않습니다.
jnm2

84

명령에 작은 따옴표를 사용할 수 있습니다. 예 :

  <Exec Command='explorer.exe "$(DestinationDir)"' IgnoreExitCode="true" />

( 차단하지 않고 MSBuild exec 작업에서 )


나에게 & quot; 대신 작은 따옴표를 사용하십시오. 더 나은 솔루션입니다. & quot ;. XmlPoke를 시도 할 때 문제가 발생할 수 있습니다. XmlPoke는 문자를 재미있는 방식으로 띄웁니다. from & quot; & quot;
JavierD
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.