2012-08-02 77 views
1

這是我目前的設置。運行批處理文件並刪除當前父目錄

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

因爲我不能使用rmdir刪除父folder我試圖使已添加到在理想情況下刪除folder並運行後自我刪除的桌面上helper.bat文件。但是我猜這個過程還在運行,所以它只會刪除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有關?

回答

1

關鍵是要確保您的批處理文件不再運行,沒有什麼是文件夾被刪除(即,不做任何改動,刪除當前目錄的文件夾)。

給定結構

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

以下的run.bat將完全刪除文件夾

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

如果運行在命令窗口中的批處理文件,請確保您不是文件夾,例如

Z:\測試>殺\ run.tab

2

在這裏你走這應該you..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 
工作