在业务当中遇到一个问题,在本地的某个文件夹下存储了大量的压缩包文件,文件层级不确定,目录结构不确定,现在因业务需要把所有的压缩包解压出来拿到对应的文件并把文件信息写入数据库:
方法:通过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”:保留文件驱动器、路径、文件名、后缀信息
)
版权声明:本文为weixin_63092927原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。