【发布时间】:2011-02-09 01:05:49
【问题描述】:
我们有一个调用基于 MSBuild 的构建过程的批处理文件。语法:
build App Target [ Additional MSBuild Arguments ]
在内部,它这样做:
msbuild.exe %1.msbuild /t:%2 %3 %4 %5 %6 %7 %8 %9
这导致对 MSBuild 的调用如下所示:
msbuild.exe 应用程序.msbuild /t:目标当任何参数包含等号 = 时,Powershell 会完全删除它。我的批处理脚本永远不会看到它。标准的cmd.exe 命令提示符不会发生这种情况。
例如,如果我调用
build App Target "/p:Property=Value"
这是传递给 MSBuild 的内容:
msbuild.exe App.msmbuild /t:Target /p:Property Value
我预料到了:
msbuild.exe App.msbuild /t:Target "/p:Property=Value"
我已经尝试过 Powershell 转义字符、标准命令提示符转义字符,甚至是我自己编造的东西:
build App Target "/p:Property=Value"
build App Target '/p:Property=Value'
build App Target /p:Property^=Value
build App Target /p:Property`=Value
build App Target /p:Property==Value
这些都不起作用。 我该怎么做才能使等号不被剥离或删除?
【问题讨论】:
标签: powershell batch-file