标题: [文本处理] 求助rar和zip两层压缩的批处理哪里出了问题? [打印本页]
作者: yrg123 时间: 2023-6-24 15:00 标题: 求助rar和zip两层压缩的批处理哪里出了问题?
- rem 设置winrar路径
- set "winrar=D:\WinRAR\RAR.exe"
- rem 设置7z路径
- set "z7=D:\7-Zip\7z.exe"
- rem 设置是否加密文件名 输入是加密文件名,其它符号不加密文件名
- set "na=是"
- rem 设置密码
- set mm=baidu.com
- rem 设置压缩文件夹所在目录
- set "file=%~dp0"
- rem 设置zip保存目录
- set "zip=保存目录"
- rem 设置分卷大小以KB为单位
- set kb=4094000
- rem 设置第一次压缩后缀
- set "rara=_第1层压缩"
- rem 设置第二次压缩后缀
- set "zb=_第2层压缩"
-
-
- if /i "%na%"=="是" (set jmfiles=hp) else (set jmfiles=p)
- set "ziptmp=%~dp0tmp"
- cd /d "%~dp0"
- if not exist "%zip%" md "%zip%" >nul 2>nul
- IF EXIST "%ziptmp%" RD /S /Q "%ziptmp%" >nul 2>nul MD "%ziptmp%" >nul 2>nul
-
- for /F "delims=" %%x in ('dir /b /ad "%file%"') do (for /F "delims=" %%i in ('dir /b /ad "%file%%%x"') do (
- if /i not "%%~nxx"=="%zip%" if /i not "%%~nxx"=="tmp" ( echo 正在处理:"%%~x\%%~i"
- IF EXIST "%ziptmp%" (echo 删除临时目录。。
- RD /S /Q "%ziptmp%" >nul)
- IF NOT EXIST "%ziptmp%" (echo 创建目录。。
- MD "%ziptmp%" >nul)
- IF NOT EXIST "%zip%\%%~nxx\" md "%zip%\%%~nxx\" >nul
- if not exist "%zip%\%%~nxx\%%~i%zb%.01" (
- echo 改名到:"%file%%%~x\%%~x%%~i"
- ren "%file%%%~x\%%~i" "%%~x%%~i"
- echo 正在进行第一次压缩..
- "%winrar%" a -%jmfiles%%mm% -m0 "%ziptmp%\%%~nxx%%~i%rara%.rar" -ep1 "%file%%%~x\%%~x%%~i" >nul
- echo 恢复名到:"%%~i"
- ren "%file%%%~x\%%~x%%~i" "%%~i"
- echo 正在进行第二次压缩..
- "%z7%" -t7z -mx=0 -p%mm% a "%zip%\%%~nxx\%%~i%zb%.01" "%ziptmp%\%%~nxx%%~i%rara%.rar" >nul
- ) else (echo *****发现文件:"%zip%\%%~nxx\%%~i%zb%.01" , 现已跳过!。。)
- echo ------------------------------
- )
- )
- )
- IF EXIST "%ziptmp%" RD /S /Q "%ziptmp%" >nul
- echo;
- echo 完成!
- echo;
- pause
- exit
复制代码
本bat功能:
第1层压缩,采用rar格式,压缩完要在名称末尾后添加:_第1层压缩,
第2层压缩,就用zip格式,然后在压缩文件末尾添加:_第2层压缩
最后把扩展名改成:01
作者: yrg123 时间: 2023-6-24 15:05
执行之后提示系统找不到指定的路径和系统找不到指定的文件 压缩完之后的都是1kb 解压不了
作者: 77七 时间: 2023-6-24 15:58
本帖最后由 77七 于 2023-6-24 16:06 编辑
- @echo off
- rem 压缩当前目录下的所有文件和文件夹,压缩完成后删除原文件(-df)
- for /f "delims=" %%a in ('dir /b ^|find /v "%~nx0"') do (
- rar a "%%~na_第1层压缩.rar" -hp123456 -df "%%a"
- rar a "%%~na_第2层压缩.zip" -hp123456 -df "%%~na_第1层压缩.rar"
- ren "%%~na_第2层压缩.zip" "%%~na_第2层压缩.01"
- )
- pause
复制代码
修改太麻烦,需要设置目录、路径等...自己修改一下
文件夹名称不要带有点号,否则会漏掉点号后面的字符
作者: Batcher 时间: 2023-6-25 08:01
回复 2# yrg123
每行代码下面加一行:
pause
观察第一个报错是在第几行?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |