使用批處理按要求批量刪除資料夾方法彙總
批處理檔案是無格式的文字檔案,它包含一條或多條命令。它的副檔名為.bat或.cmd。在命令提示下鍵入批處理檔案的名稱,或者雙擊該批處理檔案,系統就會呼叫Cmd.exe按照該檔案中各個命令出現的順序來逐個執行它們。使用批處理檔案可以簡化日常或重複性任務。
示例一:
有這樣一大堆資料夾結構,例如
abcde
|-----abcd2000
|---------0003
|----------0004
........
|------abcd2001
|---------0006
|----------0002
........
|------abcd2002
|---------0005
|----------0002
........
cdefe
|-----cdefe2000
|---------0003
|----------0004
........
|------cdefe2001
|---------0006
|----------0002
........
|------cdefe2002
|---------0005
|----------0002
........
現在想把第二層目錄裡按照年代刪除,比如只刪除abcd2000,abcd2001,cdefe2000,cdefe2001這樣的包含2000,2001欄位目錄以及它下層目錄,該怎麼做呢
?1 2 3 4 5 6 7 8 9 |
@ echo
off
setlocal enabledelayedexpansion
::設定一級資料夾
set
folder=D:\abcde
for
/f "delims=" %%a
in ( 'dir /ad /b %folder%' )
do (
set
str=%%a
if
"!str:~-4!" == "2000"
rd %folder%\!str! /s
/q
if
"!str:~-4!" == "2001" rd %folder%\!str! /s
/q
)
|
示例二:
我的所有圖片都儲存在F:\Photography ,而下面還有N多資料夾,這些資料夾中都有一個叫“.picasaoriginals”的檔案。。。注意,這個名字前有一個點!!!
例如 F:\Photography\我@\我@青島\.picasaoriginals
現在我們需要用一個批處理刪除所有F:\Photography子資料夾中,含有.picasaoriginals這個資料夾的。。。
還有,為保險起見。。。請在程式中提示是否要刪除這些資訊。。。
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
@ echo
off
echo
正在掃描檔案。。。
for
/f "delims=" %%a
in ( 'dir /a-d /s /b .picasaoriginals' )
do (
if
/i "%%~nxa" == ".picasaoriginals"
(
if
exist "%%~a" (
echo
del /f /q
"%%~a" >>DelNow.bat
)
)
)
if
exist "DelNow.bat"
(
ping
0 -n "2" >nul
call:qd
)
del /f
/q DelNow.bat
exit
:qd
cls
set
/p q=確認刪除嗎?(輸入Y確定,其它退出):
cls
if
/i "%q%" == "Y"
(
echo
正在刪除中。。。
ping
0 -n "2" >nul
call DelNow.bat
cls
echo
刪除完成!
ping
0 -n "2" >nul
)
goto :eof
|
示例三:
批量刪除電腦中所有帶qqq的檔案和資料夾
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
@ echo
off
echo ....檔案查詢,請等待...
c:\
for
/r c: %%a in
(.) do
@ if exist %%a\qqq.* del %%a\qqq.*
for
/r c: %%a in
(.) do
@ if exist %%a\qqq rd
/s /q
%%a\qqq
d:\
for
/r d: %%a in
(.) do
@ if exist %%a\qqq.* del %%a\qqq.*
for
/r d: %%a in
(.) do
@ if exist %%a\qqq rd
/s /q
%%a\qqq
e:\
for
/r e: %%a in
(.) do
@ if exist %%a\qqq.* del %%a\qqq.*
for
/r e: %%a in
(.) do
@ if exist %%a\qqq rd
/s /q
%%a\qqq
f:\
for
/r f: %%a in
(.) do
@ if exist %%a\qqq.* del %%a\qqq.*
for
/r f: %%a in
(.) do
@ if exist %%a\qqq rd
/s /q
%%a\qqq
goto end
:end
echo
good bye!
|