我想调用:
"c:\(...)\devenv.com" foo.sln /build "Debug|Win32"
Run Code Online (Sandbox Code Playgroud)
使用cmd.exe.根据我的经验,cmd.exe要么删除第一对引号(导致找不到可执行文件),要么删除第二对引号(导致管道符被误解).如何将引用的管道字符传递给cmd.exe?
Joe*_*oey 26
你可以像在那里那样做,用|引号括起字符串.
或者你可以用抑扬的口音 来逃避它^:
"c:\(...)\devenv.com" foo.sln /build Debug^|Win32
Run Code Online (Sandbox Code Playgroud)
作为旁注:为什么要使用DevEnv而不是MSBuild构建它?
插入符号(^)是用于转义字符的特殊shell字符,例如<,>,(,),...
cmd/c "echo Hello ^" World"
Run Code Online (Sandbox Code Playgroud)
产量
Hello " World
Run Code Online (Sandbox Code Playgroud)
这是另一个解决方案(解决方法?)我发现:
首先,确保环境变量定义管道字符,例如:
set PIPE="|"
稍后,运行指定上面定义的环境变量名称的命令:
"c:\(...)\devenv.com" foo.sln /build Debug%PIPE%Win32
即使调用者和被调用者之间有多个包装器,这也能完成工作.我现在正在使用它包含很长的包装器:Python/Linux - > VirtualBox guest的executeProcess - > Cmd/Windows - > devenv.com
| 归档时间: |
|
| 查看次数: |
17335 次 |
| 最近记录: |