递归批量解压文件应用技巧

在业务当中遇到一个问题,在本地的某个文件夹下存储了大量的压缩包文件,文件层级不确定,目录结构不确定,现在因业务需要把所有的压缩包解压出来拿到对应的文件并把文件信息写入数据库:

方法:通过bat处理脚本应用压缩软件进行解压达到分级解压目的

@echo off
::设置解压工具执行程序位置 建议用7-zip或者winrar
set WinRAR="D:\7-Zip\7z.exe"
::设置需要解压的文件夹路径 该路径可以存在多级
set curdir="C:\Users\wangk\Desktop\vor"
::定义解压的文件夹路径变量
set dir=""
::设置变量延时 因下面用for遍历不设置延时会导致赋值不成功
setlocal enabledelayedexpansion
::递归curdir路径包含其所有子路径 获取到后缀为*.rar *.zip *.Z *.gz的压缩文件,可自定义
for /r  %curdir%  %%a in (*.rar *.zip *.Z *.gz) do ( 
::切换到压缩文件所在路径
cd "%%~pa" 
::以压缩文件名创建文件夹
md "%%~na"
::给解压路径赋值
call set "dir=%%~dpna\"
::如需要打印变量 用%%不行需换成!!因为设置了变量延迟
echo !dir!
::解压 -y是默认所有需要确认的选项为yes -o为给定解压路径  不设置-o"!dir!" 默认解压到压缩文件所在路径 可自定义位置
 %WinRAR% x -y "%%a" -o"!dir!"
)
pause

新建一个文本文件复制粘贴,文件后缀名改为bat即可

另附 for中文件信息值的获取方式

for /f %%a in ('dir /s /b a*') do (

"%%a":文件完整信息

"%%~da":保留文件所在驱动器信息

"%%~pa":保留文件所在路径信息

"%%~na":保留文件名信息

"%%~xa":保留文件后缀信息

"%%~za":保留文件大小信息

"%%~ta":保留文件修改时间信息

"%%~dpa":保留文件所在驱动器和所在路径信息

"%%~nxa":保留文件名及后缀信息

"%%~pnxa":保留文件所在路径及文件名和后缀信息

"%%~dpna":保留文件驱动器、路径、文件名信息

"%%~dpnxa":保留文件驱动器、路径、文件名、后缀信息

)

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值