2012-08-02 5 views
1

여기에 현재 설정되어 있습니다. 배치 파일을 실행하고 현재 상위 디렉토리를 삭제하십시오

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

는 내가 이상적으로 folder를 삭제하고 실행 한 후 자체를 삭제 할 바탕 화면에 추가 된 helper.bat 파일을 시도 부모 folder을 삭제 rmdir를 사용할 수 없습니다 때문입니다. 하지만 그 과정은 여전히 ​​실행 중일 뿐이므로 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 
을 위해 일해야 갈
관련 문제