bat批量bat文件删除指定文件件夹下的某某日到某某日文件,如下图?

说明关于这个系列专栏,博主还在持续更新中,接下来会把bat的常用用法和操作都总结进来。值得说明的是,批处理指令中一些奇技淫巧,或者偏僻的知识,这个系列专栏都不会涉及。只要掌握了常用用法,在日常使用中,都可以通过查阅资料来完成自己的需求,以不变应万变!前言今天也要开心鸭:[windows批处理脚本_3]if上文梳理了批处理脚本的条件判断语句,接着说说循环语句。格式先看看循环体的结构格式:在 cmd 窗口中:FOR %variable IN (set) DO command [command-parameters]在批处理脚本中:FOR %%variable IN (set) DO command [command-parameters]在cmd窗口中使用,变量名必须用单%引用(即:%variable);在批处理脚本中使用,变量名必须用双%引用(即:%%variable)。
for、in和do是for命令的三个关键字,缺一不可。含义上述语句的含义是:遍历(set),拿到里面的每一个参数%%variable。Do,顾明思意,就是做的意思,做什么呢?在每一次遍历时进行一些操作接触过编程语言的同学可能很快就能get到循环语句的逻辑,但是没接触过的同学应该还会觉得有些抽象。没关系,我们通过几个案例,化抽象为具体,化腐朽为神奇,化......,我“话”真多(  ̄□ ̄||)案例TIP:批处理脚本中的指令不区分大小写遍历一个“列表”(666, 520, 233)@echo off
for %%a in (666, 520, 233) do (
echo %%a
)
pause输出:2. 错误测试许多编程语言可以随意命名形式变量,那么批处理指令是否支持呢?@echo off
for %%num in (666, 520, 233) do (
echo %%num
)
pause输出:此时不应有 num。结论:循环体中的形式变量只支持单个字母,可以是26个字母的任意一个。3. 实用性案例将当前目录下的txt文件名输出,并且删除掉这些文件。我的文件目录如下:脚本:@echo off
for %%a in (*.txt) do (
echo %%a
del %%a
)
pause结果:其中用到了正则表达式,*代表 任意多个字符,.代表任意一个字符,这句话的意思就是所有以txt结尾的文件。del是windows电脑删除文件的指令,可以百度或者官网查到。可以看出,为了完成这个批量删除操作,我也是需要去查阅一些指令的,因为指令数量太多了,单靠记忆是很难全部记下来的。所以希望大家也养成多查多看的习惯吧。至于正则表达式,网上有很多资料,先开个坑,如果后面有时间也会梳理下。┭┮﹏┭┮(其实我也被正则虐了无数次,正则虐我千千遍,我却待他如初恋)进阶通过上面的三个案例,我们梳理了批处理指令的最常用用法,到这里其实已经可以应付绝大多数需求了。一些更灵活的操作,在循环语句中是通过参数来控制的,这里做简要归纳:官方文档(简化版)If Command Extensions are enabled, the following additional
forms of the FOR command are supported:
FOR /D %variable IN (set) DO command [command-parameters]
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
FOR /L %variable IN (start,step,end) DO command [command-parameters]
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
看不懂?没关系,用中文再解释一遍(说得好像我看懂了一样? ̄□ ̄||)2. /L参数之所以先说这个参数,是因为我觉得这个是最常用的,在其他编程语言中也经常有类似的操作,在python称之为"切片"。(set)的格式为(起始值,步长,结束值)
举个例子:起始值=0,步长=2,结束值=10@echo off
for /l %%a in (0,2,10) do (
echo %%a
)
pause结果:0
2
4
6
8
10
请按任意键继续. . .
剩下的一些参数不是很常用,我就简单介绍下概念,如果有这方面需求的同学,可以参照概念去官网查询,或者也可以参考下面的这篇文章(感觉总结的挺详细的,还有例子):【Batch批处理】for循环全参数详解和实例演示_T型人小付的博客-CSDN博客_batch for循环3. /D参数指明(set)是文件夹,而非文件4. /D /R参数加上/R表示进入子文件夹进行遍历查找5. /R参数单独使用/R表示指定路径6. /F参数处理字符串的一些操作,大致分三种情况:(set)是一个字符串(set)是几个文件,将文件内容读取出来做为多行字符串来处理(set)是一个命令,会将命令的结果做为多行字符串进行处理作业:答案今天也要开心鸭:[windows批处理脚本_3]if,上次布置的作业公布下答案:@echo off
set /p a=请输入文本:
set /p b=请输入数值:
if %b% == 1 (
echo %a%
) else if %b% GEQ 100 (
echo 早日收复台湾
) else if %b% GTR 10 (
echo %a% > file.txt
) else (
echo 数值错误
)
pause你答对了吗?2. 题目:有两个文件,file.txt和num.txtfile.txt的内容是:haha
Hello Worldnum.txt的内容是:233
520
666目标:遍历读取这两个文件的多行文件,并且追加到一个新文件result.txt中,使得result.txt的内容为:233
666
haha
Hello
233
520
666
你能写出.bat脚本完成上述操作吗?提示:/f >> 总结循环语句的结构,在 cmd 窗口中:FOR %variable IN (set) DO command [command-parameters]在批处理脚本中:FOR %%variable IN (set) DO command [command-parameters]2, 循环体中的形式变量只支持单个字母,可以是26个字母的任意一个。3. 循环语句参数的作用If Command Extensions are enabled, the following additional
forms of the FOR command are supported:
FOR /D %variable IN (set) DO command [command-parameters]
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
FOR /L %variable IN (start,step,end) DO command [command-parameters]
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]你学“废”了吗?加油 :)

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
分类专栏
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
成就一亿技术人!
hope_wisdom 发出的红包
实付元使用余额支付
点击重新获取
钱包余额
0
抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。余额充值

我要回帖

更多关于 bat文件删除指定文件 的文章

 

随机推荐