前言

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

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

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

批处理基础

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

图中编译软件为:Notepad++

Batch 常用命令包含:echo::/remtitle/colorcd/md/dirrd/del/copypausegotoforifsetstart等。

其中:

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

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

  • ::/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
  • 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
  • %~dp0:批处理文件当前目录
  • /s:从所有子目录下删除文件
  • /q:指定以「 安静模式 」执行删除操作,删除不需要确认

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 pullgit push 四条命令

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

具体代码如下:

@echo off
title 提交代码
echo 提交代码,简化操作:: 状态
git status:: set:等待输入,赋值给变量msg
set /p commit_msg=代码提交注释::: 提交代码的 4 条命令
git add .
git commit -m %commit_msg%
git pull
git pushecho 提交成功
pause

5、清除系统垃圾文件

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

@echo off
:: 配置
title Alic Feng batTool for Clean
color 03
mode con cols=42 lines=20echo 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

Batch 批处理脚本相关推荐

  1. windows的cmd与bat批处理脚本(batch script)

    目录 序:批处理看这一篇就够了 一.前言 二.使用技巧 1.查看帮助 2.命令的执行 3.变量 4.条件语句 5.循环 6.参数 7.函数(过程调用) 8.调用外部脚本 9.命令执行结果和错误判断 1 ...

  2. cmd批量修改文件名 增加文字_Windows批处理脚本:以批量修改文件名为例

    批处理脚本,英文名叫Batch,扩展名.bat取了前3个字母.语法好像其实是DOS命令,说实话我不会,当年我每次想玩<大富翁>,都是要喊我妈给我打开的.所以说Windows这样的视窗操作系 ...

  3. windows批处理脚本bat命令解析【6】常用命令整理

    原文地址:点击打开 预定义的变量 下面是些已经被底层定义好可以直接使用的变量:不会出现在 SET 显示的变量列表中 %CD% - 扩展到当前目录字符串. %DATE% - 用跟 DATE 命令同样的格 ...

  4. batch批处理小记

    batch批处理小记 说明 命令 echo rem pause call start goto set 符号 重定向符号 ( 输出 >与>> ) 和 ( 输入 < ) 管道符号 ...

  5. Windows的批处理脚本

    Windows批处理功能配合脚本还是很强大的!(1) 这是一篇技术教程,我会用很简单的文字表达清楚自己的意思,你要你识字就能看懂,就能学到知识.写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话 ...

  6. 【Windows】一键自动设置IP及DNS的批处理脚本

    Overview 本批处理脚本适用于Windows自动更改本地连接/以太网等的IP和DNS设置 可以很方便地用于同一计算机在不同网络下(如公司.学校.家里等)切换IP 具体IP及DNS设置可在bat文 ...

  7. windows 批处理脚本编写

    windows 批处理脚本编写 什么是批处理 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理.批处理文件的扩展名为bat. 目前比较常见 的批处理包含两类:DOS批 ...

  8. 【Batch批处理】利用random生成任意区间的随机整数

    文章目录 简单介绍 使用方法详解 常规使用 生成0开始任意长度整数 生成任意区间整数 使用场景 总结 随机数的使用还是很普遍的,尤其是和游戏相关的时候.如何利用Batch批处理来生成任意区间的随机整数 ...

  9. batch print pro_研之有效 | 高效编程之Batch批处理程序

    前言 常言道:"工欲善其事,必先利其器".要有效率地开展科研工作,不仅需要持续投入时间和热情,还有必要掌握好文献管理.数据处理与分析以及团队合作等各项技能.一款好的软件能大幅提高科 ...

最新文章

  1. PIL中的Image和numpy中的数组array相互转换
  2. 【吾日三省吾身】2015.5.24-涅槃行动第六天
  3. linux挂载U盘,及乱码问题解决
  4. 使用特征_R语言-使用caret包实现特征选择:递归特征消除(RFE)算法
  5. php的c方法,thinkphp的c方法的使用
  6. 宇宙总统(洛谷-P1781)
  7. 虚幻引擎4中的移动设备分析插件
  8. mysql 批量替换域名_msyql 中批量替换url网址中的域名方案。
  9. python在建筑施工方面的应用_有哪些关于 Python 在建筑中的应用和教程?
  10. jpa内网mysql_mysql+jpa简单实现步骤
  11. 运筹学笔记 线性规划与单纯形法
  12. Error starting child
  13. python圆形_利用 Python 实现裁剪圆形头像
  14. windows调整jadx的使用内存大小
  15. Securing Wireless LANs with PEAP and Passwords
  16. 找不到工作怎么办,多半是“废了”,按这3步你也能找到工作
  17. Unity基础篇:Serializable总结与深入研究。
  18. 我们离成为C++、C#、MySQL之父有多远?
  19. 人生最曼妙的风景,竟是内心的淡定与从容——杨绛
  20. cpci检索为什么那么慢_cpci见刊多久检索

热门文章

  1. java 获得jtextarea_java JTextArea中获得光标所在行数
  2. Prometheus(3)Prometheus界面概述、监控服务功能实现
  3. 全网最全的 Notion 类软件盘点
  4. 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 8000401a 因为配置标识不正确,系统无法开
  5. zkteco iface702 中控考勤机java开发步骤二---获取考勤机 的考勤数据
  6. document的使用方法
  7. “INNER JOIN”和“OUTER JOIN”有什么区别?
  8. 【区块链 | Solidity】Solidity开发教程:用Web3.js构建第一个Dapp
  9. CrowdHuman数据集转成VOC格式并训练模型
  10. 服务器omv系统,开源NAS系统OpenMediaVault安装与体验