这些自动化场景,批处理脚本彻底能够取代 Python!

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

做者:星安果来源:AirPython|2020-08-04 10:03 收藏 分享git

  1. 前言
    提到自动化解决方案,相信大部分人会想到用 Python 语言,只须要根据功能场景,编写 Python 脚本便可。
    这些自动化场景,批处理脚本彻底能够取代 Python!

相反,PC 端的 Batch 批处理 彷佛快被忘记了,不少人对它嗤之以鼻,认为这么古老的脚本语言貌似没什么用,Python 彷佛能够取而代之。数组

相比 Python 脚本,Batch 批处理脚本在某些场景下,使用更简洁、方便、高效,即写即用,不须要依赖 Python 环境,而且能够彻底摆脱打包等繁琐步骤。cookie

  1. 批处理
    基础新建批处理脚本很简单,只须要新建一个文本文件,而后修改编码方式为:ANSI 编码,接着编写脚本逻辑代码,最后保存文件以 .bat 结尾便可。
    这些自动化场景,批处理脚本彻底能够取代 Python!

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

其中:工具

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

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

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

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

cd:切换目录

md:建立目录

dir:显示文件夹的内容

rd:删除一个目录

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

copy:拷贝文件

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

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

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

if:判断命令

set:设置一个变量

start:调用外部程序的命令

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

一、对文件夹或桌面下的文件进行分类,而后放置到不一样的文件夹内,方便概括管理

@echo off 
for %%i in (*) do (md %%~xi  
move *%%~xi %%~xi) 
pause

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

二、删除当前目录(包含子目录)下全部的 build 文件夹

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

@echo off 
:: 打开到当前目录下 
cd /d "%~dp0" 

echo 开始删除 

:: 循环删除 
for /r /D %%i in (*build*) do rd /s /q "%%i" 

echo 删除完成 

pause

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

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

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

三、执行 Python 脚本定时任务

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

@echo off   

title 循环运行Python代码 

:: 5分钟执行一次,单位为s 
set INTERVAL=300 

:: 提早执行一次,把执行时间打印出来 
echo 开始执行 - %time% 
python C:/test.py  

:: 使用timeout进行倒计时 
timeout %INTERVAL% 

:: 新建一个任务 
:Task   
echo 开始执行 - %time% 
python C:/test.py  
timeout %INTERVAL% 

:: 使用goto命令,开始跳转到上面的任务,开始执行 
goto Task

四、Git 提交代码

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

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

具体代码以下:

@echo off 
title 提交代码 
echo 提交代码,简化操做 

:: 状态 
git status 

:: set:等待输入,赋值给变量msg 
set /p commit_msg=代码提交注释: 

:: 提交代码的 4 条命令 
git add . 
git commit -m %commit_msg% 
git pull 
git push 

echo 提交成功 
pause

五、清除系统垃圾文件

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

@echo off 
:: 配置 
title Alic Feng batTool for Clean 
color 03 
mode con cols=42 lines=20 

echo executes cleaning,Please waiting... 

::程序删除系统无用文件开始 
del /f /s /q  %systemdrive%\*.tmp 1>nul 2>nul 
del /f /s /q  %systemdrive%\*._mp 1>nul 2>nul 
del /f /s /q  %systemdrive%\*.log 1>nul 2>nul 
del /f /s /q  %systemdrive%\*.gid 1>nul 2>nul 
del /f /s /q  %systemdrive%\*.chk 1>nul 2>nul 
del /f /s /q  %systemdrive%\*.old 1>nul 2>nul 
del /f /s /q  %systemdrive%\recycled\*.* 1>nul 2>nul 
del /f /s /q  %windir%\*.bak 1>nul 2>nul 
del /f /s /q  %windir%\prefetch\*.* 1>nul 2>nul 
del /f /s /q %windir%\temp\*.* 1>nul 2>nul 
del /f /q  %userprofile%\cookies\*.* 1>nul 2>nul 
del /f /q  %userprofile%\recent\*.* 1>nul 2>nul 
del /f /s /q  "%userprofile%\Local Settings\Temporary Internet Files\*.*" 1>nul 2>nul 
del /f /s /q  "%userprofile%\Local Settings\Temp\*.*" 1>nul 2>nul 
del /f /s /q  "%userprofile%\recent\*.*" 1>nul 2>nul 
::删除系统垃圾文件结束 

echo 清除系统垃圾完成!!! 
echo. & pause
  1. 最后
    上面几个简单的小功能都是使用批处理脚本编写的,实际上,Python 与批处理各有各的优点。

Python 语法更加优雅易懂,大量的依赖库能够直接使用;批处理在 PC 端某些特色的场景,不管是编写仍是使用,都有它特定的优点。

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

【编辑推荐】

  1. 数据科学家必须知道的前十大Python库
  2. 老板让我从几百个Excel中查找数据,我用Python一分钟搞定!
  3. 5 个 JS 数组技巧可提升你的开发技能
  4. 初学者如何更好自学Python代码?
  5. 99% 开发者都不知道的 JS 冷知识系列(一)【责任编辑:华轩 TEL:(010)68476606】
相关文章
相关标签/搜索