Visual Studio Post 构建事件(如果存在)

Visual Studio Post Build Event if exists

我想在 Visual Studio 的 post 构建步骤中调用批处理文件。本地存在批处理文件,只有命令

call "$(SolutionDir)PostBuildSen.bat" "$(TargetDir)" "$(TargetName)"

正确调用和执行批处理文件。

然而,当我想先检查批处理文件是否存在时(因为其他人会使用相同的 Post 构建事件),我得到错误

:VCEnd" exited with code 255.

命令是

if exists "$(SolutionDir)PostBuildSen.bat" call "$(SolutionDir)PostBuildSen.bat" "$(TargetDir)" "$(TargetName)"

诊断输出告诉我

2> Done executing task "Exec" -- FAILED.

你是怎么处理的?

解决方案目录包含一个带下划线的文件夹,即 \Dev_Main\ 并且我已经阅读了它,因为至少要调用的批处理文件不起作用。但是我不确定这是否也是文件夹的问题以及如何处理它。此外,由于 call 命令有效,我不确定这是问题所在。

此外,如果我将 call 替换为 cmd /C,退出代码为 1 并且(最小)输出告诉我

1>The filename, directory name, or volume label syntax is incorrect.

此外,稍后我会将其作为自定义命令添加到 CMakeLists 文件中,因此解决方案需要与之配合使用。

感谢 Hans Passant 的评论,我解决了这个问题。文件查询需要 if exist 而不是 if exists.