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


	这些自动化场景,批处理脚本完全可以取代 Python!
[编程语言教程]

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

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

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

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

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

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

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

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

  1. 批处理
    基础新建批处理脚本很简单,只需要新建一个文本文件,然后修改编码方式为: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:调用外部程序的命令

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

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:调用外部程序的命令

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

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

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

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

2、删除当前目录(包含子目录)下所有的 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 脚本,批处理脚本代码更简洁。

3、执行 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   

4、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  

5、清除系统垃圾文件

指定删除模式、待删除的路径,调用 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%ecycled*.* 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%	emp*.* 1>nul 2>nul 
del /f /q  %userprofile%cookies*.* 1>nul 2>nul 
del /f /q  %userprofile%ecent*.* 1>nul 2>nul 
del /f /s /q  "%userprofile%Local SettingsTemporary Internet Files*.*" 1>nul 2>nul 
del /f /s /q  "%userprofile%Local SettingsTemp*.*" 1>nul 2>nul 
del /f /s /q  "%userprofile%ecent*.*" 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】

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

原文地址:https://blog.51cto.com/14887308/2516836

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 这些自动化场景,批处理脚本完全可以取代 Python!