作者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/m.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