我想要调用:
"c:\(...)\devenv.com" foo.sln /build "Debug|Win32"
使用CMD.EXE。 根据我的经验,无论是cmd.exe的剔除第一对引号(导致可执行文件无法找到)或第二对引号(导致管道字符被误解)。 如何传递带引号的管道字符cmd.exe的?
我想要调用:
"c:\(...)\devenv.com" foo.sln /build "Debug|Win32"
使用CMD.EXE。 根据我的经验,无论是cmd.exe的剔除第一对引号(导致可执行文件无法找到)或第二对引号(导致管道字符被误解)。 如何传递带引号的管道字符cmd.exe的?
你可以做你正在做的方式出现,与封闭串|
在引号。
或者你可以用抑扬口音逃避它^
:
"c:\(...)\devenv.com" foo.sln /build Debug^|Win32
作为一个方面说明:你为什么要建立这个与devenv的,而不是MSBuild的?
插入符号(^)字符是特殊的shell字符逃避的东西像字符<,>,(,),...
cmd/c "echo Hello ^" World"
产量
Hello " World
这里是另一种解决方案(解决方法吗?)我发现:
第一,保证环境变量定义了管道字符,例如:
set PIPE="|"
以后,运行命令指定上述定义的环境变量名:
"c:\(...)\devenv.com" foo.sln /build Debug%PIPE%Win32
那请问即使是主叫用户和被叫之间的多个包装的工作。 现在,我使用它有很长的包装纸链:Python的/ Linux的 - > VirtualBox的客人executeProcess - >命令/窗口 - > devenv.com