看板 EZsoft 關於我們 聯絡資訊
: @echo off : set a=c:\program files\7-zip\7zG.exe : for %%a in (%*) do ( : dir /a %%a|findstr "DIR" >nul 2>nul && ( : "%a%" a -tzip "%%~dpa%%~na.zip" "%%~a\*" : ) || ( : "%a%" a -tzip "%%~dpa%%~na.zip" %%a : ) : ) 鉤沉一下,這個批次檔雖然可用,但某些情況下會有問題,因此我寫了改良版: ---------------------------------------------------------------- :: 將多個資料夾或檔案拖曳至此批次檔,即個別打包為 .cbz :: 資料夾會將其下的檔案打包,檔案則直接打包 @echo off chcp 65001 set "ZIP=%ProgramFiles%\7-Zip\7z.exe" set ARGS=%* setlocal EnableDelayedExpansion for %%F in (!ARGS!) do ( endlocal if exist "%%~F\" ( "%ZIP%" a -tzip "%%~F.cbz" "%%~F\*" -mx0 -xr!desktop.ini -xr!Thumb.db ) else ( "%ZIP%" a -tzip "%%~F.cbz" "%%~F" -mx0 ) setlocal ) endlocal ---------------------------------------------------------------- 說明: * 第 4 行加上轉換為 UTF-8 編碼以避免檔名含有非 Big5 字元時的潛在問題。 * 第 5 行 7Z 路徑改用 %ProgramFiles% (雖然這路徑好像也不太會動到XD)。 * 囉嗦的粉紅色那幾行是為了避免檔名含有 ( ) & ^ 等特殊字元時出錯。 註:即使這樣改了,如果檔案或資料夾含有 ^ 字元且其絕對路徑不含半形空白, 仍會出錯。這是 CMD 本身的問題,微軟不改版是無法解決的。 * 第 10 行採用比 dir | findstr 更精簡且語義更佳的方式判斷是否為資料夾。 * 一般是包漫畫才會不包入資料夾本身, 因此這裡包成 .cbz (本質是 ZIP) 且不壓縮的方式。 如有其他種類的需求可自行修改相關參數: * 改成 7Z 格式:將 11 和 13 行的 -tzip 改成 -t7z.cbz 改成 .cb7.7z * 改變壓縮等級:修改 11 和 13 行的 -mx0 (例如最大是 -mx9) * 和之前一樣,在 %AppData%\Microsoft\Windows\SendTo 目錄下 為這批次檔建立捷徑,就能加到右鍵選單的「傳送到」 2017/12/17 UPDATE: 經過某高人指點,發現有更精簡的寫法,如下: (功能和 BUG 都和原版一樣) ---------------------------------------------------------------- :: 將多個資料夾或檔案拖曳至此批次檔,即個別打包為 .cbz :: 資料夾會將其下的檔案打包,檔案則直接打包 @echo off chcp 65001 set ZIP="%ProgramFiles%\7-Zip\7z.exe" :loop if exist "%~1\" ( %ZIP% a -tzip "%~1.cbz" "%~1\*" -mx0 -xr!desktop.ini -xr!Thumb.db ) else ( %ZIP% a -tzip "%~1.cbz" "%~1" -mx0 ) shift if not "%~1" == "" goto loop ---------------------------------------------------------------- -- 《終結內容農場》瀏覽器套件 Firefox: https://mzl.la/2g0I0ry (桌機 & Android 手機) Chrome: http://bit.ly/2wDWWyP 真相: https://i.imgur.com/WTHmuVJ.png
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.30.20 ※ 文章網址: https://www.ptt.cc/bbs/EZsoft/M.1512057412.A.30B.html
pobynb: 推 12/01 01:41
goldie: 大大對 Windows Batch 檔好熟喔!@@ 12/01 12:45
goldie: 另外也推簽名檔的《終結內容農場》瀏覽器套件 12/01 12:46
※ 編輯: danny0838 (36.225.77.116), 12/01/2017 20:02:44 ※ 編輯: danny0838 (36.227.229.221), 12/17/2017 11:24:01
katy50306: 推 批次檔更新成原po的 01/21 13:52