博客
关于我
批处理脚本遍历指定文件夹下的文件
阅读量:379 次
发布时间:2019-03-05

本文共 1920 字,大约阅读时间需要 6 分钟。

批处理脚本:从入门到实践

批处理脚本是一种强大的工具,能够帮助用户自动化操作,节省时间和精力。对于编写批处理脚本的新手来说,掌握基础命令和技巧至关重要。本文将从基础到进阶,详细介绍批处理脚本的使用方法。


1. 遍历指定文件夹下的文件

批处理脚本的核心之一是遍历文件夹下的文件。for命令是批处理中最常用的命令之一,用于遍历文件夹中的文件或子文件夹。

1.1 命令解释

for [参数] %%变量名 in (匹配符) do (执行的命令)

  • [参数]:决定遍历的方式

    • /d:遍历当前路径下的文件夹
    • /r:深度遍历指定路径下的文件
    • /l:指定起始值、递增或递减值
    • /f:解析文件中的内容(本节不做介绍)
    • 无参数:默认当前路径
  • %%变量名:表示遍历到的每个文件或文件夹

  • (匹配符):指定要遍历的文件或文件夹,支持通配符(如*.txt表示所有文本文件)

  • (执行的命令):对每个遍历到的文件或文件夹执行操作

1.2 使用示例

示例1:遍历当前目录下的所有文件

for %%i in (*) do (echo %%i)

效果:输出当前目录下所有文件的名称。

示例2:遍历指定路径下的所有以.url结尾的文件

for %%i in (c:\softwares\VisualBat\*.url) do (echo %%i)

效果:输出指定路径下所有.url文件的绝对路径。

示例3:遍历当前目录下的所有文件夹

for %%i in (*) do (echo %%i)

效果:输出当前目录下所有文件夹的名称。


2. 临时变量的使用

在批处理脚本中,临时变量是非常重要的,它可以帮助用户快速处理大量数据。

2.1 变量的基本用法

  • 命令set key=value
    • 变量名和值之间不能有空格
    • 使用时需用%%包裹变量名(如%name%

示例:设置和使用临时变量

@echo offset name=dasuAndroidTvecho %name%

效果:输出dasuAndroidTv


3. 字符串处理

批处理脚本支持对字符串进行截取、拼接和替换等操作。

3.1 截取

  • 命令%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

效果:分别输出dasuAndroidTvTvAnd


4. 文件特殊操作

在遍历文件时,批处理脚本支持获取文件的详细信息,例如文件路径、文件名、扩展名等。

  • 命令%%~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)

效果:输出当前目录下所有文本文件的详细信息。


5. 完整示例:批处理签名 APK 文件

场景:遍历指定路径下的所有 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/

你可能感兴趣的文章
Pyinstaller:‘;Fiona‘;没有属性‘;_loading‘;(很可能是由于循环导入)
查看>>
pyinstaller:更改应用程序图标
查看>>
Pylint“未解决的导入“;Visual Studio 代码中的错误
查看>>
pyLoad远程代码执行漏洞复现(CVE-2023-0297)
查看>>
pymongo update_one(),upsert=True,不使用$运算符
查看>>
pymongo 中的快速或批量更新
查看>>
pymongo删除操作
查看>>
PyMongo按多个关键点分组
查看>>
Pympress:强大的双屏PDF阅读器
查看>>
pymysql.err.InternalError: (1054, "Unknown column '27D24A3B' in 'where clause'")之错误解决
查看>>
pymysql.err.OperationalError: (1364, “Field ‘id‘ doesn‘t have a default value“)
查看>>
Pytorch Tensor 维度操作的形象理解 Tensor.unsqueeze() Tensor.squeeze()
查看>>
PyMySQL库对Mysql数据库进行增删改查与工具类封装
查看>>
pynput的基本介绍和使用
查看>>
pyodbc 通过 IIS7 连接到 MSSQL 2005 服务器
查看>>
PyPI 存储库中的 JarkaStealer:深入解析与防范措施
查看>>
Pyplot tutorial,Pyplot官方教程自翻译
查看>>
PyQ5学习笔记——使用内部槽函数关闭窗口
查看>>
PyQ5学习笔记——使用自定义槽函数关闭窗口
查看>>
PyQt MimeData 文件名
查看>>