快捷搜索:  汽车  科技

用bat删除多个文件(bat-删除文件2)

用bat删除多个文件(bat-删除文件2)执行结果部分代码解释

  • 还有哪些通配符?和正则表达式类似吗?
  • 如果想删除含有特定字符的文件怎么处理
  • 删除文件还是小心为好,删除前能否增加确认,列出将要删除文件的清单
  • 正式开始前,订正上篇文章中的一个错误,感谢读者的反馈

    删除当前文件夹及其子文件夹下所有后缀为txt的文件,通过增加/s即可,即del /s 含有*的文件绝对路径

    上篇文章中描述部分写错了,代码部分是正确的,见下图

    用bat删除多个文件(bat-删除文件2)(1)

    Part 1:还有哪些通配符?和正则表达式类似吗?

    • bat中常用通配符有:*,?,类似于正则表达式中的功能
      • *表示多个字符
      • ?表示0个或者单个字符
    • bat中也支持正则表达式,网上查了一下,有兴趣者可研究一下findstr这个命令
    • 关于此就不进一步展开了,因为只是想用一些简单的bat命令(实话说,bat也不是我的擅长,实用为主,哈哈),复杂的就用vbs实现了

    Part 2:如果想删除含有特定字符的文件怎么处理

    • 例如首字母为T的文件,使用T*.txt即可
    • 主要还是基于通配符*和?来处理
    • 若中文显示有问题,请将文件另存为ANSI格式即可

    用bat删除多个文件(bat-删除文件2)(2)

    用bat删除多个文件(bat-删除文件2)(3)

    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删除多个文件(bat-删除文件2)(4)


    执行结果

    用bat删除多个文件(bat-删除文件2)(5)

    部分代码解释

    • echo 类似于VBA中的Msgbox,就是显示字符
    • @表示不显示命令本身,如不显示dir命令本身
    • set 表示给变量赋值
    • set /p 表示该变量值由窗口输入
    • 其中两个%包围起来,%var1%表示var1是一个变量
    • PAUSE表示暂停,这样黑色的弹窗不会马上消失
    • if /i,表示判断中忽略大小写

    猜您喜欢: