【发布时间】:2018-07-13 07:58:27
【问题描述】:
我想在 Visual Studio 的后期构建步骤中调用一个批处理文件。本地有批处理文件,只是命令
call "$(SolutionDir)PostBuildSen.bat" "$(TargetDir)" "$(TargetName)"
正确调用并执行批处理文件。
但是,当我想先检查批处理文件是否存在时(因为其他人将使用相同的 Post Build Event),我得到了错误
:VCEnd" 以代码 255 退出。
命令是
if exists "$(SolutionDir)PostBuildSen.bat" call "$(SolutionDir)PostBuildSen.bat" "$(TargetDir)" "$(TargetName)"
诊断输出告诉我
2> 完成执行任务“Exec”——失败。
你是怎么处理的?
解决方案目录包含一个带下划线的文件夹,即\Dev_Main\,我已经阅读了至少要调用的批处理文件不起作用的文件夹。但是我不确定这是否也是文件夹的问题以及如何处理它。另外,由于call 命令有效,我不确定这是不是问题所在。
此外,如果我将 call 替换为 cmd /C,则退出代码为 1,并且(最小)输出告诉我
1>文件名、目录名或卷标语法不正确。
另外,我稍后会将它作为自定义命令添加到 CMakeLists 文件中,因此解决方案需要使用它。
【问题讨论】:
-
在输出窗口中应该有一个可见的诊断,由命令处理器在它倾斜时产生。应该看起来像“c:\foo\bar\PostBuildSen.bat 在这个时候出乎意料”。你的语法有点错误,它是
if exist而不是if exists。 -
谢谢,确实解决了这个问题。如果您发布答案,我会接受。
-
嗯,这只是一个错字。我不明白为什么您没有看到诊断结果如此难以发布权威答案。随意使用您学到的知识来完成问答。
-
我在诊断输出中没有看到任何真正让我看到它只是语法错误的东西。我当然可能错过了一些东西,但我真正读到的唯一内容是“这不起作用”。那我就关了。
标签: visual-studio post-build-event