我是一批新手,可能犯了一个错误。但是我有以下构建后事件:

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%"

10-08 05:10