标题: [文件操作] 批处理如何修改压缩包内文件的文件名为压缩包的文件名? [打印本页]
作者: batbatbatbat 时间: 2018-12-1 10:33 标题: 批处理如何修改压缩包内文件的文件名为压缩包的文件名?
如何批量修改压缩包内文件的文件名为压缩包的文件名???
比如有3个压缩文件文件,里面的文件名分别为a.mp4,b.avi,c.swf,压缩包的文件名为1.rar,2.rar,3.rar, 压缩包解压密码一致为123456,如何批量解压压缩包,同时将解压文件名替换成1.mp4,,2.avi,3.swf
作者: xczxczxcz 时间: 2018-12-1 16:31
回复 1# batbatbatbat
Win10 x64 WinRAR 5.6.1 环境,其它环境自行修改。- @echo off & cd /d "%~dp0"
- rem 获取RAR安装位置
- reg query "HKLM\SOFTWARE\WinRAR" /v exe64>nul 2>nul && (
- for /f "tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\WinRAR" /v exe64') do set "R_Path=%%b"
- ) || for /f "tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\WOW6432Node\WinRAR" /v exe32') do set "R_Path=%%b"
-
- for /f "delims=" %%m in ("%R_Path%\..") do set "RarPath=%%~fm"
-
- REM 假定RAR密码为 123456
- md "%temp%\RARtmp" 2>nul
- for /f "delims=" %%a in ('dir/a-d/b "*.rar"') do (
- "%RarPath%\rar.exe" e ".\%%a" "%temp%\RARtmp\" -hp123456
- for /f "delims=" %%i in ('dir/a-d/b "%temp%\RARtmp\"') do "%RarPath%\rar.exe" rn ".\%%a" %%i "%%~na%%~xi"
- del /q/f "%temp%\RARtmp\*"
- )
- rd /s/q "%temp%\RARtmp"
- pause
复制代码
======================================
作者: yhcfsr 时间: 2018-12-1 21:39
楼上来了个RAR,我就来个7ZIP- @echo off
-
- rem 设置7ZIP路径
- set "path=%path%;C:\Program Files\7-Zip"
-
- rem 设置解压密码
- set "password=123456"
-
- for /r %%a in (*.rar,*.7z,*.zip) do (
- set "archpath=%%a"
- set "archname=%%~na"
- for /f "skip=18 tokens=6 delims= " %%b in ('7z l "%%a" *.* -p"%password%" -r^|find /v "files"') do (
- set "fullname=%%b"
- set "basename=%%~nb"
- call :get_name
- )
- )
- pause&exit
-
- :get_name
- call,set "newname=%%fullname:%basename%=%archname%%%"
- 7z rn "%archpath%" "%fullname%" "%newname%" -p"%password%">nul
- exit /b 0
复制代码
作者: ccccccyj 时间: 2020-2-21 10:47
回复 2# xczxczxcz
您好,您的批处理在win10电脑测试很好,但是在win7下不能正常使用,想请教问题如下:
1. 麻烦请教如何修改环境,我的环境是win7 32位,winrar 5.4 32位。
2.如果压缩文件不只是*.rar,还有混有*.zip格式压缩文件,应该怎么办?
3.如果压缩文件没有密码,需要删除哪些命令行。
新手不懂,还请不吝赐教,谢谢。
作者: ccccccyj 时间: 2020-2-21 10:52
4.如何设定修改压缩包内文件的文件名为压缩包的文件名并自动解压?
新手不懂,还请不吝赐教,谢谢。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |