在win9x的年代,用deltree這個(gè)外部命令就很容解決這個(gè)問題,不過從windows 2000 及windows xp之后,就取消了這個(gè)命令(真的是很奇怪),那么現(xiàn)在怎么解決呢?大家可能想到用 del+rd來解決這個(gè)問題。但有個(gè)問題,就是rd命令會(huì)刪除您指定的目錄。例如,當(dāng)前目錄結(jié)構(gòu)如下:
D:/>attrib /s /d d:/test/*.*
A R I D:/test/1.txt 此文件帶有只讀屬性
A H I D:/test/2.txt 此文件帶有隱藏屬性
A S I D:/test/3.txt 此文件帶有系統(tǒng)屬性
H I D:/test1/1 此目錄帶有隱藏屬性
A R I D:/test/1/4.txt 此文件帶有只讀屬性
S I D:/test1/2 此目錄帶有系統(tǒng)屬性
A R I D:/test1/2/5.txt 此文件帶有只讀屬性
批處理原理 如果您這么執(zhí)行命令 rd d:/test,那么rd會(huì)將test這個(gè)目錄連同其中的內(nèi)容一起刪除掉,而我們要保留test這個(gè)目錄。那么怎么辦呢?我們可以先用del把d:/test目錄下的文件刪除掉,然后再用rd把子目錄刪除掉。這個(gè)批處理的內(nèi)容如下,大家將如下內(nèi)容保存為后綴名為.bat 或者.cmd的文本文件,例如就叫 deltree.bat吧。
---不包含此行---
attrib -s -h -r %1/*.* && del %1/*.* /q
dir %1 /ad /b /s >del.txt
for /f %%i in (del.txt) do rd %%i /s /q
---不包含此行---
那么當(dāng)我們需要?jiǎng)h除test目錄的時(shí)候,就這么執(zhí)行 "deltree.bat d:/test"(不包含引號(hào))。
批處理第一行 第一行批處理中的%1就會(huì)讀取批處理參數(shù),變成這樣 attrib -s -h -r d:/test/*.* && del d:/test/*.* /q
先用attrib 去掉test目錄下所有文件的屬性,以保障后面的del順利執(zhí)行。
&& 是連接符號(hào),當(dāng)執(zhí)行完前面的命令后,執(zhí)行連接符后面的命令。
del刪除 test目錄下所有文件,因?yàn)閞d命令是無法刪除test目錄下的文件的。好,test下的文件刪除完了,我們就開始刪除test目錄下的子目錄。
批處理第二行 批處理執(zhí)行到第二行,%1讀取批處理參數(shù),就是我們?cè)赿eltree后面輸入的的 d:/test,變成這樣 dir d:/test /ad /b /s >del.txt 這里dir命令后的各參數(shù)含義如下:
新聞熱點(diǎn)
疑難解答