Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio Visual Studio生成后事件(如果存在)_Visual Studio_Post Build Event - Fatal编程技术网

Visual studio Visual Studio生成后事件(如果存在)

Visual studio Visual Studio生成后事件(如果存在),visual-studio,post-build-event,Visual Studio,Post Build Event,我想在VisualStudio中的后期生成步骤中调用批处理文件。本地存在批处理文件,只有命令 call "$(SolutionDir)PostBuildSen.bat" "$(TargetDir)" "$(TargetName)" 正确调用并执行批处理文件 但是,当我想首先检查批处理文件是否存在时(因为其他人将使用相同的生成后事件),我会得到错误 :VCEnd“已退出,代码为255 命令是 if exists "$(SolutionDir)PostBuildSen.bat" call "$(S

我想在VisualStudio中的后期生成步骤中调用批处理文件。本地存在批处理文件,只有命令

call "$(SolutionDir)PostBuildSen.bat" "$(TargetDir)" "$(TargetName)"
正确调用并执行批处理文件

但是,当我想首先检查批处理文件是否存在时(因为其他人将使用相同的生成后事件),我会得到错误

:VCEnd“已退出,代码为255

命令是

if exists "$(SolutionDir)PostBuildSen.bat" call "$(SolutionDir)PostBuildSen.bat" "$(TargetDir)" "$(TargetName)"
诊断输出告诉我

2> 已完成执行任务“Exec”--失败

你是怎么处理的

解决方案目录包含一个带下划线的文件夹,即
\Dev\u Main\
,我已经读到,对于要调用的批处理文件,至少它不起作用。但是,我不确定文件夹是否也存在这一问题以及如何处理它。此外,由于
call
命令起作用,我不确定这是pro问题

此外,如果我将
调用
替换为
cmd/C
,则退出代码为1,并且(minmal)输出告诉我

1> 文件名、目录名或卷标语法不正确


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

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

在输出窗口中应该有一个由当命令处理器停止运行时,它应该看起来像“c:\foo\bar\PostBuildSen.bat此时是意外的“。您的语法有细微的错误,是
如果存在
而不是
如果存在
。谢谢,这确实解决了问题。如果你发布一个答案,我会接受的。嗯,这只是一个打字错误。我不明白你为什么不把诊断结果看得如此之难,而发布一个权威性的答案。请随意使用您所学到的知识来完成Q+A。我在诊断输出中没有看到任何真正让我看到这只是语法错误的东西。我当然可能错过了什么,但我真正读到的唯一一句话是“这不管用”。那我就把它关上。