正式开始前,订正上篇文章中的一个错误,感谢读者的反馈
删除当前文件夹及其子文件夹下所有后缀为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技能寶典 的文章