Batch 批处理脚本
前言
提到自动化解决方案,相信大部分人会想到用 Python
语言,只需要根据功能场景,编写 Python
脚本即可。
相反,PC
端的 Batch
批处理 似乎快被忘记了,很多人对它嗤之以鼻,认为这么古老的脚本语言貌似没什么用,Python
似乎可以取而代之。
相比 Python
脚本,Batch
批处理脚本在某些场景下,使用更简洁、方便、高效,即写即用,不需要依赖 Python
环境,并且可以完全摆脱打包等繁琐步骤。
批处理基础
新建批处理脚本很简单,只需要新建一个文本文件,然后修改编码方式为:ANSI
编码,接着编写脚本逻辑代码,最后保存文件以 .bat
结尾即可。
图中编译软件为:Notepad++
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、对文件夹或桌面下的文件进行分类,然后放置到不同的文件夹内,方便归纳管理
@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 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 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 批处理脚本相关推荐
- windows的cmd与bat批处理脚本(batch script)
目录 序:批处理看这一篇就够了 一.前言 二.使用技巧 1.查看帮助 2.命令的执行 3.变量 4.条件语句 5.循环 6.参数 7.函数(过程调用) 8.调用外部脚本 9.命令执行结果和错误判断 1 ...
- cmd批量修改文件名 增加文字_Windows批处理脚本:以批量修改文件名为例
批处理脚本,英文名叫Batch,扩展名.bat取了前3个字母.语法好像其实是DOS命令,说实话我不会,当年我每次想玩<大富翁>,都是要喊我妈给我打开的.所以说Windows这样的视窗操作系 ...
- windows批处理脚本bat命令解析【6】常用命令整理
原文地址:点击打开 预定义的变量 下面是些已经被底层定义好可以直接使用的变量:不会出现在 SET 显示的变量列表中 %CD% - 扩展到当前目录字符串. %DATE% - 用跟 DATE 命令同样的格 ...
- batch批处理小记
batch批处理小记 说明 命令 echo rem pause call start goto set 符号 重定向符号 ( 输出 >与>> ) 和 ( 输入 < ) 管道符号 ...
- Windows的批处理脚本
Windows批处理功能配合脚本还是很强大的!(1) 这是一篇技术教程,我会用很简单的文字表达清楚自己的意思,你要你识字就能看懂,就能学到知识.写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话 ...
- 【Windows】一键自动设置IP及DNS的批处理脚本
Overview 本批处理脚本适用于Windows自动更改本地连接/以太网等的IP和DNS设置 可以很方便地用于同一计算机在不同网络下(如公司.学校.家里等)切换IP 具体IP及DNS设置可在bat文 ...
- windows 批处理脚本编写
windows 批处理脚本编写 什么是批处理 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理.批处理文件的扩展名为bat. 目前比较常见 的批处理包含两类:DOS批 ...
- 【Batch批处理】利用random生成任意区间的随机整数
文章目录 简单介绍 使用方法详解 常规使用 生成0开始任意长度整数 生成任意区间整数 使用场景 总结 随机数的使用还是很普遍的,尤其是和游戏相关的时候.如何利用Batch批处理来生成任意区间的随机整数 ...
- batch print pro_研之有效 | 高效编程之Batch批处理程序
前言 常言道:"工欲善其事,必先利其器".要有效率地开展科研工作,不仅需要持续投入时间和热情,还有必要掌握好文献管理.数据处理与分析以及团队合作等各项技能.一款好的软件能大幅提高科 ...
最新文章
- PIL中的Image和numpy中的数组array相互转换
- 【吾日三省吾身】2015.5.24-涅槃行动第六天
- linux挂载U盘,及乱码问题解决
- 使用特征_R语言-使用caret包实现特征选择:递归特征消除(RFE)算法
- php的c方法,thinkphp的c方法的使用
- 宇宙总统(洛谷-P1781)
- 虚幻引擎4中的移动设备分析插件
- mysql 批量替换域名_msyql 中批量替换url网址中的域名方案。
- python在建筑施工方面的应用_有哪些关于 Python 在建筑中的应用和教程?
- jpa内网mysql_mysql+jpa简单实现步骤
- 运筹学笔记 线性规划与单纯形法
- Error starting child
- python圆形_利用 Python 实现裁剪圆形头像
- windows调整jadx的使用内存大小
- Securing Wireless LANs with PEAP and Passwords
- 找不到工作怎么办,多半是“废了”,按这3步你也能找到工作
- Unity基础篇:Serializable总结与深入研究。
- 我们离成为C++、C#、MySQL之父有多远?
- 人生最曼妙的风景,竟是内心的淡定与从容——杨绛
- cpci检索为什么那么慢_cpci见刊多久检索
热门文章
- java 获得jtextarea_java JTextArea中获得光标所在行数
- Prometheus(3)Prometheus界面概述、监控服务功能实现
- 全网最全的 Notion 类软件盘点
- 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 8000401a 因为配置标识不正确,系统无法开
- zkteco iface702 中控考勤机java开发步骤二---获取考勤机 的考勤数据
- document的使用方法
- “INNER JOIN”和“OUTER JOIN”有什么区别?
- 【区块链 | Solidity】Solidity开发教程:用Web3.js构建第一个Dapp
- CrowdHuman数据集转成VOC格式并训练模型
- 服务器omv系统,开源NAS系统OpenMediaVault安装与体验