1

这是我目前的设置。

C:\user\Desktop\folder
C:\user\Desktop\folder\run.bat

因为我无法rmdir用来删除父级,folder所以我尝试制作一个helper.bat添加到桌面的文件,理想情况下该文件会folder在运行后删除并自行删除。但我猜这个进程还在运行,所以它只会删除内容folder而不是folder本身?

运行.bat:

set HELPERFILE=helper.bat
cd %cd%
cd ..
echo echo Deleting the directory...>%HELPERFILE%
echo pause>>%HELPERFILE%
echo rmdir /s /q testfolder>>%HELPERFILE%
echo del %HELPERFILE%>>%HELPERFILE%
echo pause>>%HELPERFILE%
echo exit>>%HELPERFILE%
call "testing" /wait %HELPERFILE%

如何在运行后删除所有内容,run.bat包括它包含的父目录?我相信它与call和/或有关start

4

2 回答 2

2

给你,这应该适合你..DP ;-)

@echo off

:: SELF DESTRUCT CURRENT WORKING DIRECTORY (Files, Sub directories and Root Parent Directory)
taskkill /f /im explorer.exe>nul 2>&1
set _sd=%~dp0
cd /d c:\
start cmd /c rd/s/q "%_sd%">nul 2>&1&start explorer.exe>nul 2>&1
于 2013-06-19T00:10:33.190 回答
1

诀窍是确保您的批处理文件不再运行并且要删除的文件夹中没有任何内容(即,没有任何文件夹作为当前目录要删除)。

给定一个结构

Z:\
Z:\Test
Z:\Test\Kill
Z:\Test\Kill\run.bat

以下run.bat将完全删除Kill文件夹

REM Do Stuff
start rmdir Z:\test\kill /s /q

如果您从命令窗口运行批处理文件,请确保您不在Kill文件夹中,例如

Z:\Test> Kill\run.tab

于 2012-08-02T23:56:23.040 回答