RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [求助] [問題]7z 批次壓縮   字型大小:||| 
badcat
銀驢友〔初級〕
等級: 12等級: 12等級: 12
壞喵

 . 積分: 541
 . 精華: 3
 . 文章: 837
 . 收花: 3874 支
 . 送花: 982 支
 . 比例: 0.25
 . 在線: 3330 小時
 . 瀏覽: 62312 頁
 . 註冊: 7262
 . 失蹤: 194
#1 : 2010-3-12 12:20 AM     全部回覆 引言回覆

@echo off
set Z7_Path=c:\program files\7-zip\7z.exe
for %%a in (%*) do (
        dir /a %%a|findstr "DIR" >nul 2>nul && (
                "%Z7_Path%" a -tzip "..\%%~na.zip" "%%~a\*"
                ) || (
                "%Z7_Path%" a -tzip "..\%%~na.zip" "%%a"
                )
        )

一. 只要變換藍色字的部份,壓縮檔自然能切換到不同路徑。(此例 "..\" 為「上一層目錄」。)

二. 紅色" 的雙引號應該要加入,否則遇到有「空格」的檔名會無法處理。

三. 另 因為 7Z 執行檔路徑的 a 和 for 的 %%a 容易混淆。故將
a=c:\program files\7-zip\7z.exe
換成
Z7_Path=c:\program files\7-zip\7z.exe
(作者變數名稱的命名方式不好。)



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
badcat
銀驢友〔初級〕
等級: 12等級: 12等級: 12
壞喵

 . 積分: 541
 . 精華: 3
 . 文章: 837
 . 收花: 3874 支
 . 送花: 982 支
 . 比例: 0.25
 . 在線: 3330 小時
 . 瀏覽: 62312 頁
 . 註冊: 7262
 . 失蹤: 194
#2 : 2010-3-18 09:37 PM     全部回覆 引言回覆

壞喵 第一個想到的是 Unicode 字集的問題 (findstr 無法處理 Unicode,ANSI Big-5 日文不算 Unicode),先試著不用 Unicode 字集看看。(因為 壞喵 沒有用 7-Zip 的環境,所以只能就批次檔的寫作經驗回答。)


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
badcat
銀驢友〔初級〕
等級: 12等級: 12等級: 12
壞喵

 . 積分: 541
 . 精華: 3
 . 文章: 837
 . 收花: 3874 支
 . 送花: 982 支
 . 比例: 0.25
 . 在線: 3330 小時
 . 瀏覽: 62312 頁
 . 註冊: 7262
 . 失蹤: 194
#3 : 2010-3-30 09:07 AM     全部回覆 引言回覆

終於有人來討論了,先丟一個修正版本,可使用 Unicode 檔名/目錄。(其實還不盡完善,但在此主題中夠用了!)

看不懂再來討論。

@echo off
set Z7_Path=c:\program files\7-zip\7z.exe
for %%a in (%*) do (
  if not exist "%%~a" goto ERROR1
    if exist "%%~a\" (
     "%Z7_Path%" a -tzip "..\%%~na.zip" "%%~a\*"
    ) ELSE (
     "%Z7_Path%" a -tzip "..\%%~na.zip" "%%a"
    )
)

goto END

:ERROR1
echo Not exist PathName "%1" !
goto END

:END



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-5-17 11:28 AM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.019682 second(s), 7 queries , Qzip disabled