[请问] 以资料夹为名称针对资料夹内图片的批量压缩方法

楼主: sanbis (方正無法達成,那麼有沒H)   2024-06-03 00:41:12
目前的状况是~主资料夹为 temp
下面有资料夹 name1 ~ namex
这些资料夹中有数量不等的图片
结构大概像这样~
temp ┐
├ name1 ┬001
│ ├...
│ └00x
├ name2 ┬001
│ ├...
│ └00x
└ namen ┬001
├...
└00x
一般来说会直接把这些资料夹用分档压缩压缩成以资料夹名称为档名的档案
ex. name1.zip ~ namex.zip
但是~这种情况下在解压缩的时候会解出一堆资料夹~
目前的希望是可以忽略资料夹名称
把图片档以资料夹名称压缩成 zip 档案
不知道有没有人做过类似的处理方式~
希望可以指点一下~m(_ _)m
作者: lanstype (lanstype)   2024-06-03 01:57:00
bandizip倒是能自动分辨压缩档里是否有第一层的资料夹,是就单纯解压缩,没有就创一个同名资料夹再把解压缩出来的资料丢进去
作者: falcon (falken)   2024-06-03 11:55:00
Compress-Archive -Path C:\d\* -DestinationPath d.zipC:\d\* 代表的是 C:\d 下的所有项目,而不是 C:\d 本身Compress-Archive是PowerShell的cmdlet,你也可以使用其他其他压缩软件的cli,我记得7zip的cli也是用*字符配多项目至于批次处理,在PowerShell中将工作目录切到你的temp资料夹之后,使用 Get-Item * 获取所有项目,并检查回传的物件阵列所有成员的PsIsContainer属性,来判断是不是资料。是档案就直接用它自身的路径作为压缩来源,是资料夹就则是它自身的路径\*另外要注意,在PowerShell中若工作目录路径中含有万用字符也就是方括号,并使用相对路径时会导致cmdlet错误,所以这时你不能用 Get-Item *,而是要用以下方式获取所有项目Get-Item "$($PWD.Path)\*"上面错了,还要先对$PWD.Path做跳脱处理,晚点上完整脚本
作者: ja20331 (没有)   2024-06-05 12:58:00
选取“数个”资料夹用winrar制作压缩档,格式zip,档案页签选择“不要储存路径”,再勾选“一个档案建立一个压缩档”
作者: danny0838 (道可道非常道)   2024-07-01 18:55:00
#1Q82f4CB 就有了

Links booklink

Contact Us: admin [ a t ] ucptt.com