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
.
我想在 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
.