生成后批处理文件末尾的DEL"%~f0"导致错误代码1

Dan*_*ore 0 batch-file visual-studio-2010 visual-studio post-build

我目前正在尝试在Visual Studio中创建一个后期构建脚本来清理我构建版本的目录.批处理文件执行正常,所有预期的行为都发生,但在Visual Studio中,我收到一条消息说"Call post-build.bat" exited with code 1.

我的批处理脚本如下:

@echo off
GOTO :CleanFiles
:CleanFiles
set direct = %CD%
IF EXIST *.pdb (
    DEL *.pdb
)
IF EXIST *.vshost.exe.config (
    DEL *.vshost.exe.config
)
IF EXIST *.WPF4.xml (
    DEL *.WPF4.xml
)
IF EXIST System.Windows.Interactivity.xml (
    DEL System.Windows.Interactivity.xml
)
IF ERRORLEVEL 0 GOTO MakeDirectories

:MakeDirectories
IF EXIST %direct%lib (
    rmdir /s %direct%lib
    rmdir /s %direct%config
    rmdir /s %direct%output
)
mkdir %direct%lib
mkdir %direct%config
mkdir %direct%output
IF ERRORLEVEL 0 GOTO MoveFiles
:MoveFiles
move /y %direct%*.dll %direct%lib
move /y %direct%*.xml %direct%config
move /y %direct%*.xlsx %direct%output
IF ERRORLEVEL 0 GOTO DelBatch
:DelBatch
DEL "%~f0"
Run Code Online (Sandbox Code Playgroud)

编辑:

它是批处理文件底部的DEL命令.有什么办法可以解决这个问题吗?

dbe*_*ham 5

您收到错误,因为批处理正在查找要执行的下一行,但文件已消失.

我相信删除文件后你需要做的就是显式退出.重要的是在与DEL命令相同的块中解析和执行EXIT.

del "%~f0"&exit
Run Code Online (Sandbox Code Playgroud)

要么

(
  del "%~f0"
  exit
)
Run Code Online (Sandbox Code Playgroud)