bat-刪除文件2

  • 還有哪些通配符?和正則表達式類似嗎?
  • 如果想刪除含有特定字符的文件怎麼處理
  • 刪除文件還是小心為好,刪除前能否增加確認,列出將要刪除文件的清單
  • 正式開始前,訂正上篇文章中的一個錯誤,感謝讀者的反饋

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

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

    bat-刪除文件2

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

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

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

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

    bat-刪除文件2

    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

    代碼截圖

    bat-刪除文件2


    執行結果

    bat-刪除文件2

    部分代碼解釋

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


    分享到:


    相關文章: