本文共 1920 字,大约阅读时间需要 6 分钟。
批处理脚本是一种强大的工具,能够帮助用户自动化操作,节省时间和精力。对于编写批处理脚本的新手来说,掌握基础命令和技巧至关重要。本文将从基础到进阶,详细介绍批处理脚本的使用方法。
批处理脚本的核心之一是遍历文件夹下的文件。for命令是批处理中最常用的命令之一,用于遍历文件夹中的文件或子文件夹。
for [参数] %%变量名 in (匹配符) do (执行的命令)
[参数]:决定遍历的方式
/d:遍历当前路径下的文件夹/r:深度遍历指定路径下的文件/l:指定起始值、递增或递减值/f:解析文件中的内容(本节不做介绍)%%变量名:表示遍历到的每个文件或文件夹
(匹配符):指定要遍历的文件或文件夹,支持通配符(如*.txt表示所有文本文件)
(执行的命令):对每个遍历到的文件或文件夹执行操作
for %%i in (*) do (echo %%i)
效果:输出当前目录下所有文件的名称。
.url结尾的文件for %%i in (c:\softwares\VisualBat\*.url) do (echo %%i)
效果:输出指定路径下所有.url文件的绝对路径。
for %%i in (*) do (echo %%i)
效果:输出当前目录下所有文件夹的名称。
在批处理脚本中,临时变量是非常重要的,它可以帮助用户快速处理大量数据。
set key=value %%包裹变量名(如%name%)@echo offset name=dasuAndroidTvecho %name%
效果:输出dasuAndroidTv。
批处理脚本支持对字符串进行截取、拼接和替换等操作。
%key:~[start,num]% start:截取的起始位置(正数或倒数)num:截取的字符数量set name=dasuAndroidTvecho %name:~0,4% rem 截取前4个字符:dasuecho %name:~4% rem 截取从第4个字符开始:AndroidTvecho %name:~-2% rem 截取倒数2个字符:Tvecho %name:~4,-2% rem 截取从第4个字符开始的2个字符:And
效果:分别输出dasu、AndroidTv、Tv、And。
在遍历文件时,批处理脚本支持获取文件的详细信息,例如文件路径、文件名、扩展名等。
%%~fi、%%~di、%%~pi、%%~ni、%%~xi、%%~ti、%%~zi %%~fi:文件的绝对路径%%~di:文件所在的盘符%%~pi:文件的路径(不包含盘符)%%~ni:文件的文件名(不包含扩展名)%%~xi:文件的扩展名%%~ti:文件的上次修改时间%%~zi:文件的大小for %%i in (*.txt) do ( echo 文件名:%%~nxi echo 文件路径:%%~fi echo 文件大小:%%~zi)
效果:输出当前目录下所有文本文件的详细信息。
场景:遍历指定路径下的所有 APK 文件,并通过 sign.jar 对每个文件进行签名。
@echo offsetlocal enabledelayedexpansionset sign=c:\users\suxq\desktop\sign.jarset apkPath=c:\users\suxq\desktop\outputs\for %%i in (%apkPath%*.apk) do ( set oldApk=%%~nxi set outApk=!oldApk:unsign=google! echo java -jar %sign% !oldApk! !outApk!)
效果:对当前目录下所有以.apk结尾的文件进行签名,签名后文件名中的unsign替换为google。
通过以上内容,我们可以清晰地看到批处理脚本的强大功能。无论是文件遍历、字符串操作,还是文件签名,批处理脚本都能将繁琐的任务自动化。希望本文能为大家提供实用的参考!
转载地址:http://twcwz.baihongyu.com/