在 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)"
工作。
我正在尝试在 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)"
工作。