如何使用批处理文件从同一目录中删除目录?

时间:2018-03-13 19:30:22

标签: windows batch-file cmd

call :deleteSelf&exit /b
:deleteSelf
start "" /D "C:\Windows" /MIN cmd /c RD /S /Q "C:\Windows\test"&&exit /b

这是我使用的代码。运行它的批处理文件位于C:\ Windows \ test

该文件与目录中的任何其他文件一起成功删除,但不是目录本身。有谁知道解决这个问题的方法?我很难过。

2 个答案:

答案 0 :(得分:2)

至少你需要

  • 保留当前批处理文件,使其无法打开
  • 确保您当前的活动目录不是您要删除的目录

所以,如果您按照已经指向的dbenham's approach离开当前批处理文件,您可以使用类似

的内容
((goto) 2>nul & cd "%~dp0\.." && rmdir /s /q "%~dp0") 

即,

  • (goto)将生成将导致当前批处理文件执行的错误
  • 我们将当前活动目录更改为存储批处理文件的文件夹的父目录
  • 活动目录已更改,我们尝试删除包含批处理文件的文件夹

当然,如果有另一个进程/文件锁定该文件夹,您将无法将其删除。

答案 1 :(得分:0)

肯定不会像在批处理文件中添加以下行那样简单:

cd c:\
rd c:\windows\test