运行批处理文件并删除当前的父目录

时间:2012-08-02 23:40:11

标签: batch-file rmdir

这是我目前的设置。

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

由于我无法使用rmdir删除父folder,我尝试制作一个添加到桌面的helper.bat文件,理想情况下会删除folder并在运行后删除自己。但我想这个过程仍在运行,所以它只会删除folder但不会删除folder本身的内容?

的run.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

有关

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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:\试验>杀\ run.tab