写Windows的批处理程序,一般只是想实现一些简单的功能。例如将文件夹下的文件批量改后缀名,一句rename "*.lua" "*.txt"就能实现,不需要编译,一个记事本一句话就可以搞定。

但是这并不代表批处理只能用于实现这种近乎一次性的功能。

本人在某制造业的工作期间,生产线电脑的维护一直是一个很棘手的事情。因为生产线是24小时工作,控制产线的PC也是24小时运转,软件运行难免有垃圾。

但是软件厂商一般都不会处理这方面的问题。

当时碰到的难题是:
有 2年 * 365天 * 24小时 * 100个记录 * 10 共计17520000个文件需要你删除,你会怎么做?
(文件夹层次就是按照 日期\小时\产品编号\产品记录 存放,软件有删除文件的功能,但是居然不删文件夹,文件夹多了软件特别容易在存图时卡死,而且奇葩的是居然好几十台电脑两年没有人去删它!!!)

直接右键删除父级目录?图样图森破图内卫!Windows是需要把文件句柄全都处理之后再进行确认删除的(表达可能有误,但是意思肯定没错),等它将这千万个文件处理完然后你再来点击确定?我估计你第二天也等不到,况且这段时间电脑的卡顿让你没法保证生产线的正常运行。再说当月的文件规定是不能删除的。

一天或者一个月的删除?可以!每天专人负责,可以删掉四个月左右。产线里电脑大概有50多台需要做这样的工作。。。

用Batch批处理就简单多了,rd /s /q,运行起来都不用你管。要保证运行不卡?文件夹遍历到小时,一小时一小时删总没问题了吧。

@echo off
setlocal enabledelayedexpansionfor /l %%i in (1,1,12) do (set /a m=%%i+100set m=!m:~-2!for /l %%j in (1,1,31) do (set /a d=%%j+100set d=!d:~-2!for /l %%k in (0,1,23) do (set /a h=%%k+100set h=!h:~-2!
rem 设置要删除的路径的父级路径set p="D:\AllImage\Table1"rd /s /q !p!\!m!-!d!\!h!)rd /s /q !p!\!m!-!d!)
)pause

这样,程序就能够自动遍历文件夹到小时级,然后静默删除。

继续但是!上面是直接遍历12个月份31天24个小时,而且路径也是固定的。不要指望教别人一两句别人就知道这个文件可以怎么改,更不要指望谁都能看懂上面的代码。

处女座的程序猿怎么能够满足于这种半成品?!自己整理了一下这个程序的需求

  • 需要能够设定删除的时间段,最好能自动判断需要删除的时间段
  • 需要能够设定删除的文件夹,最好能设定多个路径
  • 最好能够设置密码,防止不相关人员的误操作

于是我的AutoDelete程序出现了

  • Path.cfg 用来存放需要删除的文件夹路径
path1=D:\AllImage\Table1
path2=D:\AllImage\Table2
path3=D:\FailImage\Table1
path4=D:\FailImage\Table2
path5=D:\Images\Table1
path6=D:\Images\Table2
  • AutoDelete.bat 从这个文件运行会保留最近两个月的文件,其他的删除(不同年同月份的文件会在一起,所以没进行处理)
@echo off
setlocal enabledelayedexpansionrem Parameterset ms=1set me=10set ds=1set de=31set hs=0set he=23set /a ms=1%date:~5,2%+!ms!-100
set /a me=1%date:~5,2%+!me!-100Call .\CFG\Login.bat
  • DeleteByMonth.bat 从这个文件运行会要求你输入需要删除的月份
@echo off
setlocal enabledelayedexpansionrem Parameterset /p ms=Please set the month you want to delete:set me=!ms!set ds=1set de=31set hs=0set he=23Call .\CFG\Login.bat
  • Login.bat 一个简单的密码验证,怕别人误操作
set /p password="please input your password:"
if %password%==0000 goto pwcorrect else goto pwwrong:pwwrongecho "password is wrong!!"echo "press anykey to exit..."pause>nul
exit:pwcorrectecho "access available"echo "AutoDelete will be running, you can exit this program in anytime..."ping 127.0.0.1 -n 03>nulecho -------------------------------------------echo "press anykey to confirm your operation..."pause>nulCall .\CFG\Delete.bat
  • Delete.bat 根据上面的设置进行遍历删除
set /a ms=!ms!-1
set /a me=!me!-1for /l %%i in (!ms!,1,!me!) do (set /a m=%%i %% 12+101set m=!m:~-2!for /l %%j in (!ds!,1,!de!) do (set /a d=%%j+100set d=!d:~-2!for /f "tokens=2* delims==" %%t in (.\CFG\Path.cfg) do (set p=%%techo "----------!p!\!m!-!d! Delete Start----------"for /l %%k in (!hs!,1,!he!) do (set /a h=%%k+100set h=!h:~-2!echo ----echo "!p!\!m!-!d!\!h! Delete Start"rd /s /q !p!\!m!-!d!\!h!echo "!p!\!m!-!d!\!h! Delete Complete"echo ----)rd /s /q !p!\!m!-!d!echo "----------!p!\!m!-!d! Delete Complete----------"))
)pause

功能实际上依然很简单,也就是处理一下路径,然后删除文件夹。加了一些乱七八糟的输出语句,加了一些可调的参数,整个程序就显得高大上了(当然,这只是对于不懂的人)。现在要删除这些文件,双击输入密码确认后,什么都不用管,完活后去确认一下就行。

当然,可能会有人觉得,这种东西用个高级语言写起来多爽,路径处理都不用自己写,什么语言还没有个File库?

但是当你电脑上没有编译器,要方便随时改代码,产线电脑又不让随便运行程序时,记事本和批处理真的是一大福星,随时随地改,走哪用到哪。

在做出了这个能应用在好几十台电脑上的bat程序之后,文件自动备份,网络代理切换,磁盘检查并保存日志,电脑开WiFi。。。好多事情都慢慢在学习批处理的过程中从复杂的操作变成了傻瓜式的双击运行,文件或者代码直接发给别人也可以用。这些程序我都会继续修改加强程序的通用性,用法和代码也会在之后的文章中进行整理。

Windows批处理 - 小程序大作用相关推荐

  1. windows批处理(bat)程序常用命令

    windows批处理(bat)程序常用命令 开始之前先简单说明下cmd文件和bat文件的区别:在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建.编辑和查看.两者所用的命令行代码也是共用 ...

  2. python祝福祖国代码_“小程序 大梦想”之创意编程校园邀请赛------53信息技术学科周...

    原标题:"小程序 大梦想"之创意编程校园邀请赛------53信息技术学科周 如今"人工智能"."创意编程"这些新热词已经深入人们的学习和生 ...

  3. 微信小程序的作用,到底能为企业带来什么价值呢?

    微信小程序的作用,到底能为企业带来什么价值呢? 微信小程序的热门度一直很高,据了解,截止7月,已上线小程序超过100万个:小程序开发者超过150万:小程序日均打开次数为4次,54%的打开次数为用户主动 ...

  4. 开发微信小程序的作用

    现在微信使用量已经突破十亿,可以说大多数网民每日必用的软件,因为背靠着微信的流量池,这就让小程序的推广和营销都变得更简单,所以企业开发个小程序对企业能带来更多的流量与好处.随走随用的小程序,扫一扫,搜 ...

  5. 微信小程序大转盘完整代码

    微信小程序大转盘完整代码 效果图 wxml片段 <!--index.wxml--> <view class="container"><image sr ...

  6. windows批处理小脚本总结

    批处理是Windows自带的一个脚本引擎,语法简洁.内置一些功能强大的命令,并且可以与Windows上的其他软件进行良好的通信.批处理能够提供一系统自动化处理功能,大幅提高日常工作中的一些琐碎重复事情 ...

  7. c语言找等位线坐标,C语言小技巧大作用

    减少不必要的BAK文件 当使用TC默认配置时,会产生大 量的*.bak文件.因为按照TC默认 设置,修改某个C文件后,将生成 同名的*.bak备份文件,该类文件 的存在没多大作用.解决办法是 把Opt ...

  8. 小程序大获成功,企业微信却不愠不火,如何破局?

    2016年4月企业微信上线,如今已过去两年多,腾讯财报中依然没有出现企业微信的相关数据.反而是2017年初才上线的小程序,风头无两:2017年腾讯财报就显示,截至今年1月,微信上一共有58万个小程序, ...

  9. 入门微信小程序[第六篇]微信小程序 -- 大樱桃的安排

    经过一番努力,我的直接上司"大樱桃"终于满意了并且交给了我第一个小程序项目. 小乖猴助手 老沙很高兴,终于可以实际的编码了,对于一个100%的码农来说,这是何等的愉悦. 这是一个家 ...

最新文章

  1. 访问系统相册或调用摄像头
  2. BS程序代码与安全与基本攻击/防御模式
  3. 如何使用手机端、ipad端来编写博客
  4. M1芯片的Mac电脑如何进入到恢复模式?
  5. 管理感悟:技术好的人都有点工作狂
  6. Windows驱动签名,还需要使用EV代码签名证书吗?
  7. 立方体和球形体积的计算
  8. 基于UML的人事管理系统
  9. 安装eNSP和VirtualBox中遇到的问题
  10. python--数据类型
  11. 网吧lol正在连接服务器,网吧steam在连接至steam服务器时遇到问题的处理办法
  12. MySQL的事务和存储引擎
  13. 【Python|Kaggle】机器学习系列之Pandas基础练习题(五)
  14. 07蚂蚁-高并发解决方案——1.Hystrix服务降级,服务隔离,服务熔断,服务限流,CDN
  15. Zabbix监控网络设备模板配置
  16. 看过这篇文章,一切关于NFT的疑问都可以迎刃而解
  17. 【架构设计】——k8s云平台上分布式应用架构浅谈
  18. Maven中的GroupID和ArtifactID指的是什么?
  19. 数据双向绑定的原生写法原理
  20. 九坤德州扑克第一名方案分享

热门文章

  1. 互联网日报 | 6月10日 星期四 | 腾讯云推出“云签约”解决方案;华为商城上线“鸿蒙智联”页面;“生鲜电商第一股”争夺战打响...
  2. 实现“快准狠”交付——小米HR研发团队敏捷实践
  3. web前端培训—css源码笔记(二)【爱创课堂】
  4. 史上最强!目标检测数据集标注工具网页版
  5. 概率论与数理统计——多方法解决-双样本方差的F检验-Excel/SPSS
  6. matlab学习计划11.4
  7. ubuntu16.04安装GNU Radio
  8. 数字系统设计(FPGA)课程设计: 多功能数字钟
  9. NRF52832 ESB通信
  10. 笔记类app之Leanote同步机制 韩俊强的博客