Re: [請問] 7zip可以一個資料夾一個壓縮檔嗎(批次)

看板EZsoft (小軟體)作者 (笠原弘子 命!)時間16年前 (2009/07/24 20:41), 編輯推噓1(106)
留言7則, 3人參與, 最新討論串7/8 (看更多)
※ 引述《hirokofan (笠原弘子 命!)》之銘言: : 我改成封存( -ttar)後,發現用這個方法跟從視窗介面跑出來的結果有些不同 : 一樣使用封存,使用這個方法跑出來的檔案會比視窗介面跑出來的還要大一點 : 跟檔案數有關,一個檔案約差0.73KB(是說也沒差很大啦) 今天總算知道問題在哪邊了,我有用XnView,其中XnView Shell 可以在未壓縮的壓縮檔上面秀出一張圖,之前發現用7z跑出來的可以看到圖 但是自己 tar的不會,原因是壓縮格式不同,之前用 -ttar並不等於7z的封存 7z的封存是要調整壓縮等級為 0,也就是要加上參數 -mx0 (0/1/3/5/7/9,預設為5,0不壓縮,其餘數字越大壓縮率越高) 所以原來的內容要改的不是-ttar而是要加上-mx0,容量大小的問題也解決了 不壓縮的情況下,儲存使用7z和zip應該是一樣的(擔心流通性的話就改用zip) 批次封存 @echo off set "a=%programfiles%\7-zip\7z.exe" for %%a in (%*) do if exist "%%~a\" ( "%a%" a -t7z "%%~a.7z" "%%~a\*" -mx0 ) else ( "%a%" a -t7z "%%~a.7z" "%%~a" -mx0 ) 自己做的批次解壓指令,把 r:\temp\* 改成想要輸出的地方就好 有路徑有*會多產生一層資料夾,把*去掉就會散在外面 弄好.bat檔後link到C:\Documents and Settings\xxxx\SendTo就可以了 批次解壓(應該有些是冗碼>_<) @echo off set "a=%programfiles%\7-zip\7z.exe" for %%a in (%*) do if exist "%%~a" ( "%a%" x -or:\temp\* "%%~a" ) else ( "%a%" x -or:\temp\* "%%~a" ) -- ◢███◣ ______________________________________ ─⊙-⊙- / \ 皿  _/ 把台灣那些可悲的節目收一收 該吃飯了 / ◣ ︶◢ \______________________________________/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.28.22

07/25 00:20, , 1F
說到這,我就覺得Windows的cmd batch遠遠輸給linux bash
07/25 00:20, 1F

07/25 00:42, , 2F
原po可以試試把批次解壓的
07/25 00:42, 2F

07/25 00:43, , 3F
   "%a%" x -or:\temp\* "%%~a"
07/25 00:43, 3F

07/25 00:43, , 4F
改成 "%a%" x -o"%%~dpna\" "%%~a"
07/25 00:43, 4F

07/25 00:43, , 5F
即可把每個壓縮檔,自動解在旁邊同檔名的資料夾下
07/25 00:43, 5F

07/25 11:43, , 6F
我就是希望能解到指定位置而不是放旁邊,放旁邊的話
07/25 11:43, 6F

07/25 11:44, , 7F
7Z本身的功能就有了(主要是因為我有用ramdisk的關係啦
07/25 11:44, 7F
文章代碼(AID): #1AQQlUmp (EZsoft)
討論串 (同標題文章)
文章代碼(AID): #1AQQlUmp (EZsoft)