我正在尝试在 VS2010 中创建一个构建后文件复制步骤,该步骤在路径宏具有嵌入空格时进行处理。我尝试将复制命令用双引号括起来,但是如果 $(SolutionDir)
包含空格,则在调用复制时会出错。错误消息中的回显命令行不显示双引号。
复制“$(SolutionDir)$(Configuration)\*”“$(TargetDir)”
我也分别尝试了 \"
和 ""
但这两者都会导致 2 字符转义序列出现在回显的命令行中?如何正确转义构建步骤中的双引号?
最佳答案
我在 Visual Studio 中使用带有预构建事件命令的双引号时遇到了问题。我已经看到了这个问题的批处理文件解决方案,但似乎批处理文件并不能解决所有问题并且并不优雅。 我发现解决方法是在结束双引号前加一个空格。具体如下。
以下命令有效,但不支持路径中的空格:
subwcrev $(SolutionDir) $(SolutionDir)subwcrev_template.txt $(SolutionDir)version.h
我几乎无法控制其他开发人员将解决方案放置在何处,因此我必须支持路径中的空格。尝试在路径周围使用引号来支持空格,我想出了以下命令。它总是失败。
subwcrev "$(SolutionDir)""$(SolutionDir)subwcrev_template.txt""$(SolutionDir)version.h"
几乎偶然,我找到了解决方案,在路径的最后一个字符和双引号之间放一个空格。
subwcrev "$(SolutionDir) ""$(SolutionDir)subwcrev_template.txt ""$(SolutionDir)version.h "
这行得通。我在使用 Visual Studio Shell 的 AVR Studio 6.1 中对此进行了测试。
关于visual-studio-2010 - 如何在VS2010后期构建步骤中添加双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11587394/