这些自动化场景,批处理脚本完全可以取代 Python!-成都创新互联网站建设

关于创新互联

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

这些自动化场景,批处理脚本完全可以取代 Python!

1. 前言

提到自动化解决方案,相信大部分人会想到用 Python 语言,只需要根据功能场景,编写 Python 脚本即可。

从事资阳主机托管,服务器租用,云主机,网页空间,空间域名,CDN,网络代维等服务。

相反,PC 端的 Batch 批处理 似乎快被忘记了,很多人对它嗤之以鼻,认为这么古老的脚本语言貌似没什么用,Python 似乎可以取而代之。

相比 Python 脚本,Batch 批处理脚本在某些场景下,使用更简洁、方便、高效,即写即用,不需要依赖 Python 环境,并且可以完全摆脱打包等繁琐步骤。

2. 批处理

基础新建批处理脚本很简单,只需要新建一个文本文件,然后修改编码方式为:ANSI 编码,接着编写脚本逻辑代码,最后保存文件以 .bat 结尾即可。

Batch 常用命令包含:echo、::/rem、title/color、cd/md/dir、rd/del/copy、pause、goto、for、if、set、start等。

其中:

@echo off 代表在本行开始关闭回显,不显示正在执行的批处理命令及执行结果,一般放在批处理文件第一行。

echo 日志参数:用于在控制台输出日志,偏于理解脚本执行逻辑

::/rem 注释内容:注释内命令

title/color:设置窗体标题和背景颜色

cd:切换目录

md:创建目录

dir:显示文件夹的内容

rd:删除一个目录

del 删除模式 文件:删除文件。通过配置删除模式,可以删除任意文件,包含隐藏、只读、系统文件

copy:拷贝文件

pause:暂停命令,一般放在批处理文件最后一行

goto:跳转命令,一般和「 : 任务名称 」搭配使用,执行一个循环任务,实例见第 3 节

for:循环命令,和 Python 中的 for 语法类似

if:判断命令

set:设置一个变量

start:调用外部程序的命令

3. 实用场景

下面聊聊几个批处理比较实用的场景:

1、对文件夹或桌面下的文件进行分类,然后放置到不同的文件夹内,方便归纳管理

 
 
 
 
  1. @echo off 
  2. for %%i in (*) do (md %%~xi  
  3. move *%%~xi %%~xi) 
  4. pause 

你没看错,只需要 4 行代码其中,for 用于遍历当前文件夹,遍历的结果用 do 分别去执行后面的命令%%~xi 是截取 %%i 的扩展名,使用 md 命令新建一个文件夹move 的作用是:将源文件移动到新的文件夹中。

2、删除当前目录(包含子目录)下所有的 build 文件夹

使用 Android Studio 编译后,如果项目存在多个 Module,可能会存在多个 build 文件夹,可以使用下面的批处理脚本一键删除。

 
 
 
 
  1. @echo off 
  2. :: 打开到当前目录下 
  3. cd /d "%~dp0" 
  4.  
  5. echo 开始删除 
  6.  
  7. :: 循环删除 
  8. for /r /D %%i in (*build*) do rd /s /q "%%i" 
  9.  
  10. echo 删除完成 
  11.  
  12. pause 

脚本很简单,只需要打开项目根目录,利用「 for + do 」循环遍历,根据匹配规则删除文件即可。

其中:%~dp0:批处理文件当前目录/s:从所有子目录下删除文件。

/q:指定以「 安静模式 」执行删除操作,删除不需要确认相比 Python 脚本,批处理脚本代码更简洁。

3、执行 Python 脚本定时任务

比如,我编写完一个 Python 采集爬虫,我想 5 分钟执行一次,这里可以使用 goto 命令。

 
 
 
 
  1. @echo off   
  2.  
  3. title 循环运行Python代码 
  4.  
  5. :: 5分钟执行一次,单位为s 
  6. set INTERVAL=300 
  7.  
  8. :: 提前执行一次,把执行时间打印出来 
  9. echo 开始执行 - %time% 
  10. python C:/test.py  
  11.  
  12. :: 使用timeout进行倒计时 
  13. timeout %INTERVAL% 
  14.  
  15. :: 新建一个任务 
  16. :Task   
  17. echo 开始执行 - %time% 
  18. python C:/test.py  
  19. timeout %INTERVAL% 
  20.  
  21. :: 使用goto命令,开始跳转到上面的任务,开始执行 
  22. goto Task   

4、Git 提交代码

正常使用 git 命令行提交代码( 不使用 IDE ),需要使用 git add .、git commit -m 提交日志、git pull、git push 四条命令。

使用批处理脚本,只需要双击一下,输入提交日志就完事了。

具体代码如下:

 
 
 
 
  1. @echo off 
  2. title 提交代码 
  3. echo 提交代码,简化操作 
  4.  
  5. :: 状态 
  6. git status 
  7.  
  8. :: set:等待输入,赋值给变量msg 
  9. set /p commit_msg=代码提交注释: 
  10.  
  11. :: 提交代码的 4 条命令 
  12. git add . 
  13. git commit -m %commit_msg% 
  14. git pull 
  15. git push 
  16.  
  17. echo 提交成功 
  18. pause  

5、清除系统垃圾文件

指定删除模式、待删除的路径,调用 del 命令去删除即可。

 
 
 
 
  1. @echo off 
  2. :: 配置 
  3. title Alic Feng batTool for Clean 
  4. color 03 
  5. mode con cols=42 lines=20 
  6.  
  7. echo executes cleaning,Please waiting... 
  8.  
  9. ::程序删除系统无用文件开始 
  10. del /f /s /q  %systemdrive%\*.tmp 1>nul 2>nul 
  11. del /f /s /q  %systemdrive%\*._mp 1>nul 2>nul 
  12. del /f /s /q  %systemdrive%\*.log 1>nul 2>nul 
  13. del /f /s /q  %systemdrive%\*.gid 1>nul 2>nul 
  14. del /f /s /q  %systemdrive%\*.chk 1>nul 2>nul 
  15. del /f /s /q  %systemdrive%\*.old 1>nul 2>nul 
  16. del /f /s /q  %systemdrive%\recycled\*.* 1>nul 2>nul 
  17. del /f /s /q  %windir%\*.bak 1>nul 2>nul 
  18. del /f /s /q  %windir%\prefetch\*.* 1>nul 2>nul 
  19. del /f /s /q %windir%\temp\*.* 1>nul 2>nul 
  20. del /f /q  %userprofile%\cookies\*.* 1>nul 2>nul 
  21. del /f /q  %userprofile%\recent\*.* 1>nul 2>nul 
  22. del /f /s /q  "%userprofile%\Local Settings\Temporary Internet Files\*.*" 1>nul 2>nul 
  23. del /f /s /q  "%userprofile%\Local Settings\Temp\*.*" 1>nul 2>nul 
  24. del /f /s /q  "%userprofile%\recent\*.*" 1>nul 2>nul 
  25. ::删除系统垃圾文件结束 
  26.  
  27. echo 清除系统垃圾完成!!! 
  28. echo. & pause 

4. 最后

上面几个简单的小功能都是使用批处理脚本编写的,实际上,Python 与批处理各有各的优势。

Python 语法更加优雅易懂,大量的依赖库可以直接使用;批处理在 PC 端某些特点的场景,无论是编写还是使用,都有它特定的优势。

当然,可以使用转换工具将批处理脚本转为 EXE 可执行程序,供 Python 去调用,完成一些复杂的自动化任务。


本文标题:这些自动化场景,批处理脚本完全可以取代 Python!
链接地址:http://www.kswsj.cn/article/cdschdd.html

其他资讯