1。前言提到了自动化解决方案。相信大部分人都会想到使用Python语言,只需要根据功能场景编写Python脚本即可。相反,PC端的Batch批处理似乎快要被遗忘了。很多人对此嗤之以鼻,认为这么古老的脚本语言似乎没什么用,Python似乎可以取而代之。与Python脚本相比,Batch批处理脚本在某些场景下使用起来更加简洁、方便、高效。即写即用,不需要依赖Python环境,可以完全摆脱打包等繁琐步骤。2.批处理基础创建一个新的批处理脚本非常简单。只需要新建一个文本文件,然后修改编码方式为:ANSI编码,然后编写脚本逻辑代码,最后保存为.bat结尾的文件即可。批量常用命令包括:??echo、::/rem、title/color、cd/md/dir、rd/del/copy、pause、goto、for、if、set、start等。其中:@echooff表示该行开头关闭echo,不会显示正在执行的批处理命令和执行结果。一般放在批处理文件的第一行。echolog参数:用于在控制台输出日志,偏向理解脚本执行逻辑::/rem注释内容:命令标题/注释中的颜色:设置表单标题和背景颜色cd:切换目录md:创建目录dir:显示内容offolderrd:删除一个目录deldeletepatternfile:删除一个文件。通过配置删除模式,可以删除任意文件,包括隐藏文件、只读文件、系统文件copy:复制文件pause:暂停命令,一般放在批处理文件的最后一行goto:跳转命令,一般与":taskname",执行一个循环任务,见第3节示例for:循环命令,类似于Python中的for语法if:判断命令set:设置一个变量start:调用外部程序的命令3.实际场景说几个批处理比较实用的场景:1.将桌面上的文件夹或文件分类,然后放在不同的文件夹中,方便管理@echoofffor%%iin(*)do(md%%~ximove*%%~xi%%~xi)pause你没看错,只需要4行代码。其中,for用于遍历当前文件夹,遍历的结果用于分别执行后面的命令。%%~xi是拦截%%i的扩展名,使用md命令新建一个文件夹。move的作用是将源文件移动到一个新的文件夹中。2.删除当前目录下的所有build文件夹(包括子目录)。使用AndroidStudio编译后,如果项目中有多个模块,可能会有多个build文件夹。您可以使用以下批处理脚本来一键删除它们。@echooff::打开当前目录cd/d"%~dp0"echostartdelete::cycledeletefor/r/D%%iin(*build*)dord/s/q"%%i"echodeletecompleted暂停脚本非常简单,只需要打开项目根目录,使用“for+do”循环,根据匹配规则删除文件即可。其中:%~dp0:批处理文件的当前目录/s:删除所有子目录下的文件。/q:指定在“安静模式”下执行删除操作。删除不需要确认。与Python脚本相比,批处理脚本代码更加简洁。3.执行Python脚本的定时任务。比如我写了一个Python采集爬虫,我想每5分钟执行一次。这里可以使用goto命令。@echoofftitle循环运行Python代码::每5分钟执行一次,单位为ssetINTERVAL=300::提前执行一次,打印执行时间echostartexecution-%time%pythonC:/test.py::Use超时倒计时超时%INTERVAL%::创建新任务:Taskecho开始执行-%time%pythonC:/test.pytimeout%INTERVAL%::使用goto命令开始跳转到上面的任务,开始执行gotoTask4,Git提交代码一般使用git命令行来提交代码(不使用IDE),需要用到四个命令:gitadd.,gitcommit-mcommitlog,gitpull,gitpush。使用批处理脚本,只需要双击,输入commitlog,就大功告成了。具体代码如下:@echoofftitle提交代码echo提交代码,简化操作::statusgitstatus::set:等待输入,赋值给变量msgset/pcommit_msg=代码提交comment:::4条提交命令代码gitadd.gitcommit-m%commit_msg%gitpullgitpushecho提交成功pause5、清除系统垃圾文件指定删除方式和删除路径,调用del命令删除即可。@echooff::configuretitleAlicFengbatToolforCleancolor03modeconcols=42lines=20echoexecutescleaning,Pleasewaiting...::程序删除系统无用文件startdel/f/s/q%systemdrive%\*.tmp1>nul2>nuldel/f/s/q%systemdrive%\*._mp1>nul2>nuldel/f/s/q%systemdrive%\*.log1>nul2>nuldel/f/s/q%systemdrive%\*.gid1>nul2>nuldel/f/s/q%systemdrive%%\*.chk1>nul2>nuldel/f/s/q%systemdrive%\*.old1>nul2>nuldel/f/s/q%systemdrive%\recycled\*.*1>nul2>nuldel/f/s/q%windir%\*.bak1>nul2>nuldel/f/s/q%windir%\prefetch\*.*1>nul2>nuldel/f/s/q%windir%\temp\*.*1>nul2>nuldel/f/q%userprofile%\cookies\*.*1>nul2>nuldel/f/q%userprofile%\recent\*.*1>nul2>nuldel/f/s/q"%userprofile%\LocalSettings\TemporaryInternetFiles\*.*"1>nul2>nuldel/f/s/q"%userprofile%\LocalSettings\Temp\*.*"1>nul2>nuldel/f/s/q"%userprofile%\recent\*.*"1>nul2>nul::deletesystemjunkfilesendecho清除系统垃圾完成!!!echo.&pause4.上面最后几个简单的小功能都是用批处理脚本写的。事实上,蟒蛇论和批处理各有优势。Python语法更加优雅易懂,大量依赖库可以直接使用;批处理在PC端的某些场景下,不管是写的还是用的,都有其特定的优势。当然,你可以使用转换工具,将批处理脚本转换为EXE可执行程序,供Python调用,完成一些复杂的自动化任务。
