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,表示判断中忽略大小写


    分享到:


    相關文章: