문제
호출하고 싶습니다 :
"c:\(...)\devenv.com" foo.sln /build "Debug|Win32"
cmd.exe 사용. 내 경험상 CMD.Exe는 첫 번째 인용문 쌍 (실행 파일을 찾을 수 없게 함) 또는 두 번째 인용문 (파이프 문자가 잘못 해석되는 경우)을 제거합니다. 인용 된 파이프 문자를 cmd.exe에 어떻게 전달합니까?
해결책
당신은 당신이 거기에서하고있는 방식으로 그것을 할 수 있고, 문자열을 |
인용 표시로.
또는 당신은 그것을 통해 그것을 피할 수 있습니다 우울한 악센트 ^
:
"c:\(...)\devenv.com" foo.sln /build Debug^|Win32
부수적으로 : 왜 MSBuild 대신 Devenv로 이것을 만들고 있습니까?
다른 팁
CARET (^) 문자는 <,>, (,), ...와 같은 것들에 대한 캐릭터를 탈출하는 특별한 쉘 문자입니다.
cmd/c "echo Hello ^" World"
산출
Hello " World
다음은 다른 해결책 (해결 방법은?)입니다.
먼저, 환경 변수가 파이프 문자를 정의하는지 확인하십시오.
set PIPE="|"
나중에 위의 정의 된 환경 변수 이름을 지정하는 명령을 실행합니다.
"c:\(...)\devenv.com" foo.sln /build Debug%PIPE%Win32
발신자와 칼리 사이에 여러 개의 포장지가 있더라도 작업이됩니다. 지금은 매우 긴 래퍼 체인 : Python/Linux-> Virtualbox Guest의 ExecuteProcess-> CMD/Windows-> devenv.com과 함께 사용하고 있습니다.
제휴하지 않습니다 StackOverflow