标题: [文件操作] [已解决]求精减批处理用7Z压缩拖入文件夹下子文件夹 [打印本页]
作者: smss 时间: 2019-5-9 17:00 标题: [已解决]求精减批处理用7Z压缩拖入文件夹下子文件夹
本帖最后由 smss 于 2019-5-11 20:43 编辑
用7Z压缩拖入文件夹下子文件夹
如果用for /d %%i in (*) do "%zip%" a "%1\%%i.zip" "%%i" 得到的是含子文件目录的压缩包 只能用最笨的方法逐个CD到对应文件夹再执行压缩命令 于是就有了如下的- if exist %1\clock_2x4 (cd %1\clock_2x4&for /d %%i in (*) do "%zip%" a "%1\A\clock_2x4.zip" "%%i")
- if exist %1\com.android.calculator2 (cd %1\com.android.calculator2&for /d %%i in (*) do "%zip%" a "%1\A\com.android.calculator2.zip" "%%i")
- if exist %1\com.android.soundrecorder (cd %1\com.android.soundrecorder&for /d %%i in (*) do "%zip%" a "%1\A\com.android.soundrecorder.zip" "%%i")
- if exist %1\com.android.appshare (cd %1\com.android.appshare&for /d %%i in (*) do "%zip%" a "%1\A\com.android.appshare.zip" "%%i")
- if exist %1\com.android.contacts (cd %1\com.android.contacts&for /d %%i in (*) do "%zip%" a "%1\A\com.android.contacts.zip" "%%i")
- if exist %1\com.android.deskclock (cd %1\com.android.deskclock&for /d %%i in (*) do "%zip%" a "%1\A\com.android.deskclock.zip" "%%i")
- if exist %1\com.android.fileexplorer (cd %1\com.android.fileexplorer&for /d %%i in (*) do "%zip%" a "%1\A\com.android.fileexplorer.zip" "%%i")
复制代码
需求是打包%1下所有子文件夹(不包含子文件夹本身目录)
作者: cfwyy77_bat 时间: 2019-5-10 09:31
意思是每个 子文件夹 分别打包?如果我没理解错的话,试试下面这个:- @echo off
-
- set zip="C:\Program Files\7-Zip\7z.exe"
- set directory="%~1"
-
- if not %directory%=="" (
- for /f %%i in ('dir /b /ad %1') do (
- %zip% a %%i %1\%%i
- )
- )
- pause
复制代码
作者: WHY 时间: 2019-5-10 09:38
本帖最后由 WHY 于 2019-5-10 15:13 编辑
7z a archive1.zip subdir\
adds all files and subfolders from folder subdir to archive archive1.zip. The filenames in archive will contain subdir\ prefix.
7z a archive2.zip .\subdir\*
adds all files and subfolders from folder subdir to archive archive2.zip. The filenames in archive will not contain subdir\ prefix.- @echo off
- path "C:\Program Files (x86)\7-Zip\";%path%
- for /d %%i in ("E:\Test\*") do (
- for /d %%j in ("%%i\*") do 7z a "%%j.zip" "%%j\*"
- )
- pause
复制代码
作者: smss 时间: 2019-5-10 13:47
如果用for /d %%i in (*) do "%zip%" a "%1\%%i.zip" "%%i" 得到的是含子文件目录的压缩包
如下图
需要不含子文件目录的压缩包 就是不含图中的icons
不要包含icons目录 不要包含icons目录 不要包含icons目录
作者: WHY 时间: 2019-5-10 15:17
回复 4# smss
#3难道不是这个意思吗?
如果是 WinRAR 的话,可以这样:- @echo off
- path "C:\Program Files\WinRAR\";%path%
- for /d %%i in ("E:\Test\*") do (
- for /d %%j in ("%%i\*") do WinRAR a -ep1 -afzip -r "%%j.zip" "%%j\*"
- )
- pause
复制代码
另外,不要用拖拽
作者: smss 时间: 2019-5-10 16:12
本帖最后由 smss 于 2019-5-10 16:25 编辑
回复 5# WHY
for /d %%i in ("%1") do (for /d %%j in ("%%i\*") do "C:\Program Files\WinRAR\WinRAR.exe" a -ep1 -afzip -r "%%j.zip" "%%j\*")
7Z
for /d %%i in ("%1\*") do (for /d %%j in ("%%i\*") do "C:\Program Files\7-Zip\7z.exe" a "%%i.zip" "%%i\*")
调整之后最好的结果了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |