这是我目前的设置。
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
答案 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