正式開始前,訂正上篇文章中的一個錯誤,感謝讀者的反饋
刪除當前文件夾及其子文件夾下所有後綴為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,表示判斷中忽略大小寫
閱讀更多 excel技能寶典 的文章