标题: [文件操作] [已解决]使用RAR压缩文件时的问题 [打印本页]
作者: smss 时间: 2019-5-8 00:40 标题: [已解决]使用RAR压缩文件时的问题
拖拽一个文件A(中有1 2 3 等文件)复制代码
生成了A.zip 打开A.zip目录结构是A然后是 1 2 3
怎样生成一个目录结构是A.zip直接就是 1 2 3
问题2 A文件下有 1 2 3 等文件
对A文件目录下所有子目录分别压缩 1 2 3 成1.zip 2.zip 3.zip...然后再压缩成一个A.zip
作者: Batcher 时间: 2019-5-8 08:22
到底哪个是文件哪个是文件夹?
作者: yhcfsr 时间: 2019-5-8 09:21
- winrar a c:\a.zip 1
- winrar a c:\a.zip 2
- winrar a c:\a.zip 3
复制代码
第二问同理推导吧
作者: Batcher 时间: 2019-5-8 09:31
回复 3# yhcfsr
猜测楼主的意思,第一问应该是这样吧:
winrar a -ep %~n1.zip %~n1
作者: smss 时间: 2019-5-8 12:46
本帖最后由 smss 于 2019-5-8 12:50 编辑
回复 yhcfsr
猜测楼主的意思,第一问应该是这样吧:
winrar a -ep %~n1.zip %~n1
Batcher 发表于 2019-5-8 09:31
- set "zip=C:\Program Files\7-Zip\7z.exe"
- cd %1\icons
- for /d %%i in (*) do "%zip%" a "%1\A\icons.zip" "%%i"
- cd %1\lockscreen
- for /d %%i in (*) do "%zip%" a "%1\A\lockscreen.zip" "%%i"
- cd %1\A&for /f "tokens=*" %%i in ('dir/b') do ren "%%i" "%%~ni"
- "%zip%" a %1.zip icons lockscreen
- cd %1\&"%zip%" a %1.zip wallpaper preview description.xml
- cd ..&ren "%~n1.zip" "%~n1.mtz"&rmdir /Q/S %1\A&exit
复制代码
才睡醒回复不及时见谅 昨晚几乎没睡 从RAR换成了7Z 。。。
A是文件夹lockscreen icons是其下的子文件夹 当然还有其它
目标是把A下所子文件夹(除了preview wallpaper文件夹和description.xml文件)压缩为zip后并删除后缀 然后把A下的preview wallpaper文件夹description.xml和生成的lockscreen icons一起再压缩成A.zip后改后缀为.mtz
作者: Batcher 时间: 2019-5-8 12:49
回复 5# smss
4楼的代码能否解决1楼的第一问?
作者: smss 时间: 2019-5-8 12:54
回复 smss
4楼的代码能否解决1楼的第一问?
Batcher 发表于 2019-5-8 12:49
肯定不可能啊 RAR压缩时生成的目录会成为A.zip—A-1。。。需要的是打开A.zip就看到子文件夹
作者: Batcher 时间: 2019-5-8 13:57
回复 7# smss
这样理解没错吧?
作者: smss 时间: 2019-5-8 14:09
本帖最后由 smss 于 2019-5-8 14:43 编辑
回复 smss
这样理解没错吧?
Batcher 发表于 2019-5-8 13:57
- @echo off
- set "zip=C:\Program Files\7-Zip\7z.exe"
- if exist %1\ (goto B) else goto A
- :A
- "%zip%" x "%1" -y -aoa -o"%~n1">nul
- ren %~n1\* *.zip&ren %~n1\description.zip description.xml>nul
- for /r %%i in ("*.zip") do ("%zip%" x %%i -y -aos -o"%~n1\*\")>nul
- del /s/q/f/a %~n1\*.DS_Store %~n1\*.zip>nul
- echo 解包完毕!&ping 0 -n "2">nul&exit
- :B
- cd %1\icons
- for /d %%i in (*) do "%zip%" a "%1\A\icons.zip" "%%i"
- cd %1\lockscreen
- for /d %%i in (*) do "%zip%" a "%1\A\lockscreen.zip" "%%i"
- cd %1\A&for /f "tokens=*" %%i in ('dir/b') do ren "%%i" "%%~ni"
- "%zip%" a %1.zip icons lockscreen
- cd %1\&"%zip%" a %1.zip wallpaper preview description.xml
- cd ..&if exist %~n1.mtz (del /s/q/f/a %~n1.mtz) else ren "%~n1.zip" "%~n1.mtz"&rmdir /Q/S %1\A
- echo 打包完毕!&ping 0 -n "2">nul&exit
复制代码
已解决想精减优化下打包时的 就是排除wallpaper preview description.xml把其它子文件打包成ZIP后删除后缀再和其它文件打包生成父文件
作者: Batcher 时间: 2019-5-8 14:34
1.bat- @echo off
- pushd "%1"
- for /d %%i in (*) do (
- WinRAR.exe a -ibck "..\%~nx1.zip" "%%i"
- )
复制代码
作者: smss 时间: 2019-5-8 14:42
本帖最后由 smss 于 2019-5-8 14:54 编辑
1.bat
Batcher 发表于 2019-5-8 14:34
老大这个真不行 我放弃RAR了 现在用7Z看打包部分问题是怎样把一个文件夹下所有子文件夹打包成对应ZIP 而不是需要逐个CD至对应子文件下再执行打包命令!!!
cd %1\icons
for /d %%i in (*) do "%zip%" a "%1\A\icons.zip" "%%i"
cd %1\lockscreen
for /d %%i in (*) do "%zip%" a "%1\A\lockscreen.zip" "%%i"
cd %1\A&for /f "tokens=*" %%i in ('dir/b') do ren "%%i" "%%~ni"
"%zip%" a %1.zip icons lockscreen看红色部分
作者: Batcher 时间: 2019-5-8 14:45
回复 11# smss
我这边测试没有发现问题,把你1楼问题1的测试用例和测试代码打包传上来我试试
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |