作者sanbis (方正)
看板EZsoft
标题[请问] zip 的批量分档压缩
时间Mon Jun 3 00:41:12 2024
目前的状况是~主资料夹为 temp
下面有资料夹 name1 ~ namex
这些资料夹中有数量不等的图片
结构大概像这样~
temp ┐
├ name1 ┬001
│ ├...
│ └00x
├ name2 ┬001
│ ├...
│ └00x
└ namen ┬001
├...
└00x
一般来说会直接把这些资料夹用分档压缩压缩成以资料夹名称为档名的档案
ex. name1.zip ~ namex.zip
但是~这种情况下在解压缩的时候会解出一堆资料夹~
目前的希望是可以忽略资料夹名称
把图片档以资料夹名称压缩成 zip 档案
不知道有没有人做过类似的处理方式~
希望可以指点一下~m(_ _)m
--
应徵时
『老板你好 我是国立的 』 『有消息会跟你联络』
『老板你好 我是私立的 』 『有消息会跟你联络』
『(把奶放在桌上) 老~~~~~~~板~~~~~~』 『Amy! 给她个私人秘书职位』
国立私立尬不过两粒 这就是现实
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.168.166.140 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/EZsoft/M.1717346474.A.64D.html
1F:→ lanstype: bandizip倒是能自动分辨压缩档里是否有第一层的资料夹 06/03 01:57
2F:→ lanstype: ,是就单纯解压缩,没有就创一个同名资料夹再把解压缩 06/03 01:58
3F:→ lanstype: 出来的资料丢进去 06/03 01:58
4F:推 falcon: Compress-Archive -Path C:\d\* -DestinationPath d.zip 06/03 11:55
5F:→ falcon: C:\d\* 代表的是 C:\d 下的所有项目,而不是 C:\d 本身 06/03 11:59
6F:→ falcon: Compress-Archive是PowerShell的cmdlet,你也可以使用其他 06/03 12:09
7F:→ falcon: 其他压缩软体的cli,我记得7zip的cli也是用*字元配多项目 06/03 12:09
8F:→ falcon: 至於批次处理,在PowerShell中将工作目录切到你的temp资料 06/03 12:18
9F:→ falcon: 夹之後,使用 Get-Item * 获取所有项目,并检查回传的物件 06/03 12:18
10F:→ falcon: 阵列所有成员的PsIsContainer属性,来判断是不是资料。 06/03 12:18
11F:→ falcon: 是档案就直接用它自身的路径作为压缩来源,是资料夹就则是 06/03 12:18
12F:→ falcon: 它自身的路径\* 06/03 12:18
13F:→ falcon: 另外要注意,在PowerShell中若工作目录路径中含有万用字元 06/03 12:35
14F:→ falcon: 也就是方括号,并使用相对路径时会导致cmdlet错误,所以这 06/03 12:35
15F:→ falcon: 时你不能用 Get-Item *,而是要用以下方式获取所有项目 06/03 12:35
16F:→ falcon: Get-Item "$($PWD.Path)\*" 06/03 12:35
17F:→ falcon: 上面错了,还要先对$PWD.Path做跳脱处理,晚点上完整脚本 06/03 12:38
18F:推 ja20331: 选取「数个」资料夹用winrar制作压缩档,格式zip,档案页 06/05 12:58
19F:→ ja20331: 签选择「不要储存路径」,再勾选「一个档案建立一个压缩 06/05 12:58
20F:→ ja20331: 档」 06/05 12:58