bat-刪除文件2

還有哪些通配符?和正則表達式類似嗎?如果想刪除含有特定字符的文件怎麼處理刪除文件還是小心為好,刪除前能否增加確認,列出將要刪除文件的清單

正式開始前,訂正上篇文章中的一個錯誤,感謝讀者的反饋

刪除當前文件夾及其子文件夾下所有後綴為txt的文件,通過增加/s即可,即del /s 含有*的文件絕對路徑

上篇文章中描述部分寫錯了,代碼部分是正確的,見下圖

Part 1:還有哪些通配符?和正則表達式類似嗎?

bat中常用通配符有:*,?,類似於正則表達式中的功能*表示多個字符?表示0個或者單個字符bat中也支持正則表達式,網上查了一下,有興趣者可研究一下findstr這個命令關於此就不進一步展開了,因為只是想用一些簡單的bat命令(實話說,bat也不是我的擅長,實用為主,哈哈),複雜的就用vbs實現了

Part 2:如果想刪除含有特定字符的文件怎麼處理

例如首字母為T的文件,使用T*.txt即可主要還是基於通配符*和?來處理若中文顯示有問題,請將文件另存為ANSI格式即可

Part 3:刪除文件還是小心為好,刪除前能否增加確認,列出將要刪除文件的清單

主要是結合dir和判斷語句代碼如下

@echo off
@echo 本文件及子文件下後綴名為txt的文件如下:
dir /s /b G:\\【10】微信\\【3】文章\\2016.10.30\\*.txt
echo 是否刪除這些文件,請輸入Y/N,Y表示刪除,N表示不刪除
set /p var1=請輸入:
if /i %var1% == Y (del /s G:\\【10】微信\\【3】文章\\2016.10.30\\*.txt)
PAUSE

代碼截圖


執行結果

部分代碼解釋

echo 類似於VBA中的Msgbox,就是顯示字符@表示不顯示命令本身,如不顯示dir命令本身
set 表示給變量賦值set /p 表示該變量值由窗口輸入其中兩個%包圍起來,%var1%表示var1是一個變量PAUSE表示暫停,這樣黑色的彈窗不會馬上消失if /i,表示判斷中忽略大小寫