我是一批新手,可能犯了一个错误。但是我有以下构建后事件:
IF $(ConfigurationName) == Release (
SET RELEASEPATH = "C:\Users\Synercoder\Documents\Visual Studio 2010\Releases\$(ProjectName)"
IF NOT EXIST %RELEASEPATH% (
GOTO MAKEDIR
) ELSE (
GOTO DIREXISTS
)
:MAKEDIR
MKDIR %RELEASEPATH%
:DIREXISTS
COPY /Y "$(TargetDir)$(ProjectName).dll" "%RELEASEPATH%\$(ProjectName).dll"
COPY /Y "$(TargetDir)$(ProjectName).pdb" "%RELEASEPATH%\$(ProjectName).pdb"
)
但是,此操作失败,代码为255。如果我将所有
%RELEASEPATH%
替换为实际路径,它将起作用。我查找了 SET
命令,我认为我使用它是正确的......但就像我说的那样,我是一个批处理新手。任何线索为什么在我的情况下失败了?
如果我使用以下代码,这是我的输出:
SET RELEASEPATH = test
ECHO "%RELEASEPATH%"
SET RELEASEPATH = "test"
ECHO "%RELEASEPATH%"
输出:
""
""
最佳答案
首先,空间很重要!如果我是你,我会删除 "并且只在使用 var 时添加它们。
SET RELEASEPATH=C:\Users\Synercoder\Documents\Visual Studio 2010\Releases\$(ProjectName)
IF NOT EXIST "%RELEASEPATH%" MKDIR "%RELEASEPATH%"