在 Postbuild 中转义美元符号

Escaping a dollar sign in Postbuild

我正在尝试在 Postbuild 中执行一个使用美元符号的命令。我已经尝试了所有解决方案 here 但 none 有效。

echo "$(runtime.testbin)"

尝试这样做会在我尝试构建时抛出异常,我尝试使用以下方式转义:

echo "%24(runtime.testbin)"

但这会打印出:

1> "4(runtime.testbin)"

我也试过:

echo "%2524(runtime.testbin)"

打印:

1> "524(runtime.testbin)"

您可能需要对美元符号和后面的括号进行编码(不一定是右括号,但我个人认为只对其中一个进行编码看起来很难看):

<PropertyGroup>
  <PostBuildEvent>echo "%24%28hello%29"</PostBuildEvent>
</PropertyGroup>

您的命令是否必须类似于:$(runtime.testbin)

在 msbuild 中,格式 $(xxx) 将被识别为 Msbuild Property 的值。

也许你可以试试:

echo $ (runtime.testbin)=>$ (runtime.testbin)

echo "$ (runtime.testbin)"=>"$ (runtime.testbin)"

echo $ runtime.testbin=>$runtime.testbin

echo $:(runtime.testbin)=>$:(runtime.testbin)

更新: 马丁的回答很有魅力!其实简单的编码文件可以使 echo "%24(runtime.testbin)" 工作。