点击上方的“AirPython”bat复制文件夹,选择“加星”

Python技术干货第一时间关注!

bat复制文件夹_bat脚本复制文件夹_bat执行bat文件

1 简介

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

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

与Python脚本相比,Batch批处理脚本在某些场景下使用起来更加简洁、方便、高效。 它们可以在不依赖Python环境的情况下编写和使用,并且可以完全摆脱打包等繁琐的步骤。

2. 批处理基础

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

bat脚本复制文件夹_bat执行bat文件_bat复制文件夹

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

在:

@echooff 表示在该行开头关闭回显,不显示正在执行的批处理命令和执行结果。 一般放在批处理文件的第一行

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

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

title/color:设置表单标题和背景颜色

cd:切换目录

md:创建目录

dir:显示文件夹的内容

rd:删除一个目录

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

复制:复制文件

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

goto:跳转命令,一般与“:task name”配合使用,执行循环任务,例子见第3节

for:循环命令bat复制文件夹,类似于Python中的for语法

if:判断命令

set:设置一个变量

start:调用外部程序的命令

3.实际场景

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

1.将桌面下的文件夹或文件分类,然后放在不同的文件夹中,方便统一管理

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

你没看错,只需要4行代码

在,

for用于遍历当前文件夹,遍历的结果用于分别执行以下命令

%%~xi是拦截%%i的扩展名,使用md命令新建文件夹

move的作用是将源文件移动到新的文件夹中

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

用Android Studio编译后,如果项目中有多个模块,可能会有多个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四个命令

使用批处理脚本,只需要双击,输入commit log就大功告成了

具体代码如下:

@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%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 SettingsTemporary Internet Files*.*" 1>nul 2>nul
del /f /s /q  "%userprofile%Local SettingsTemp*.*" 1>nul 2>nul
del /f /s /q  "%userprofile%recent*.*" 1>nul 2>nul
::删除系统垃圾文件结束

echo 清除系统垃圾完成!!!
echo. & pause

4.最后

以上简单的小功能都是用批处理脚本写的。 其实Python和批处理各有优势。

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

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