看板 EZsoft 關於我們 聯絡資訊
※ 引述《ryousuke ( )》之銘言: : 在桌面上存成7z.reg後左鍵點選兩下後即在右鍵上新增7z這個解壓縮項目 : 2.建立處理批次檔案 : ---------請複製除了本行以外的以下文字--------- : for /f "tokens=*" %%a in ('dir /b /a-d %1') do set filename=%%~na : md "R:\%filename%" : "C:\Program Files\7-Zip\7z.exe" x %1 -o"R:\%filename%" : pause : ---------請複製除了本行以外的以上文字--------- : 開啟記事本後貼上然後另存為7z.bat於C:\ : 預設新增同壓縮檔檔名資料夾的路徑我設在R:\ : 請依自己的需求更改路徑 在網路研究過後發現命令可以簡化 7z.bat內容請替代為 ---------請複製除了本行以外的以下文字--------- "C:\Program Files\7-Zip\7z.exe" x %1 -o"R:\%~n1" pause ---------請複製除了本行以外的以上文字---------
y3k:我覺得7zip缺少的比較重要功能是批次不記錄路徑壓縮 01/09 11:32
y3k:WinRAR還在我電腦裡的原因也只是這個01/09 11:33
y3k:WinRAR的時候可以圈選多個資料夾或檔案 選單加入壓縮檔後01/09 12:18
y3k:在<檔案>分頁勾選"一個檔案建立一個壓縮檔"並在上方檔案路徑01/09 12:26
y3k:下拉選擇"不要儲存路徑"01/09 12:20
y3k:這個功能在整理圖片掃本等等的東西時是很方便的01/09 12:22
y3k:在<檔案>分頁勾選"一個檔案建立一個壓縮檔"並在上方檔案路徑01/09 12:26
說真的壓資料不要資料夾的做法蠻神奇的 我試著去處理不過一直不順利 直到發現7z.exe可以匯入filelist壓縮 不過一直失敗 直到我發現filelist文字檔的編碼必須是utf-8 如果編碼是ANSI的話會格式錯誤 一開始我想找可以將文字檔從ANSI轉碼成utf-8的工具 不過中途發現命令提示字元可以輸出Unicode-LE 還有ConvertZ的Console版ConCmd可以將Unicode-LE轉成utf-8 處理的流程是這樣 先用命令提示字元下製作filelist 再從Unicode-LE轉碼成utf-8後 用7z.exe讀取filelist壓縮 方法如下 1.安裝7-Zip 4.65或以上版本 2.下載ConCmd Ver 1.5並解壓縮到C:\concmd15 http://www.megaupload.com/?d=L239PRVU 3.建立右鍵選單 ---------請複製除了本行以外的以下文字--------- Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\shell\7za\command] @="C:\\7za.bat \"%1\"" ---------請複製除了本行以外的以上文字--------- 在桌面上存成7za.reg後左鍵點選兩下後即在右鍵上新增7za這個壓縮項目 2.建立處理批次檔案 ---------請複製除了本行以外的以下文字--------- set list=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2% cmd /u /c dir /s/b/A:-D "%~dpn1">%temp%\%list%.txt "C:\concmd15\ConCmd.exe" /i:ULE /o:utf8 %temp%\%list%.txt "C:\Program Files\7-Zip\7z.exe" a -t7z "R:\00.7z" @%temp%\%list%.txt pause del %temp%\%list%.txt ---------請複製除了本行以外的以上文字--------- 開啟記事本後貼上然後另存為7za.bat於C:\ 預設壓縮檔路徑我設在R:\00.7z 請依自己的需求更改路徑與壓縮檔檔名 資料夾按右鍵後點7za後就會製作檔案清單後壓縮 唯一的問題就是如果有同檔名檔案將會壓縮失敗 目前我只做出單一資料夾下的檔案壓縮 點選多個資料夾後再壓縮的scrpit目前還沒做出來 請大家多多回應討論 參考資料: retrieve current directory name in batch http://www.msfn.org/board/topic/ 56320-retrieve-current-directory-name-in-batch/ DIR Display a list of files and subfolders http://ss64.com/nt/dir.html Windows : 在 cmd 下的 dir 輸出 UTF-8 編碼的清單 http://gsyan888.blogspot.com/2011/04/windows-cmd-dir-utf-8.html 漫談Windows XP環境變數 http://texhello.pixnet.net/blog/post/ 21374901-%E6%BC%AB%E8%AB%87windows-xp%E7%92%B0%E5%A2%83%E8%AE%8A%E6%95%B8 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.41.132.105 ※ 編輯: ryousuke 來自: 114.41.132.105 (01/18 22:14)
s25g5d4:使用DATE當變數是不切實際的 因為會隨控制台中的地區語言 01/18 22:39
s25g5d4:設定而有不同... 01/18 22:39
用date變數只是一時之間用來當filelist的檔名 壓縮完就會清掉了
s25g5d4:另外 UTF-8不用這樣弄 可以用chcp 65001 01/18 22:39
可以詳細說明方法嗎 謝謝 ※ 編輯: ryousuke 來自: 114.41.132.105 (01/18 22:43)
s25g5d4:bat開頭使用chcp 65001 所有輸出資料都將會是UTF-8編碼 01/18 22:46
我試試看把chcp 65001加進去看看
s25g5d4:如果你有去看過你產生的list txt 會發現它的檔名是 01/18 22:47
s25g5d4:週三 21201.txt 雖然不會發生問題 不過感覺很怪就是了 01/18 22:47
s25g5d4:反正那不重要 弄完就刪掉基本上是沒差.... 01/18 22:48
沒有喔 輸出的是YYYYMMDD.txt 你可以拿那一段script跑跑看 ※ 編輯: ryousuke 來自: 114.41.132.105 (01/18 22:52)
s25g5d4:唔 在我的電腦跑出來是這樣... 01/18 22:56
我是在xp跑的 你的作業系統是win7嗎 ※ 編輯: ryousuke 來自: 114.41.132.105 (01/18 22:57)
s25g5d4:Yes 01/18 23:01
那我再找個固定一點的變數好了 ※ 編輯: ryousuke 來自: 114.41.132.105 (01/18 23:15)
s25g5d4:Okay, 我發現問題了 問題在我剛剛提過的chcp...囧 01/18 23:10
s25g5d4:控制台的地區及語言選項也有差... 01/18 23:14
我把chcp加進去會卡住 不知道是什麼問題 ※ 編輯: ryousuke 來自: 114.41.132.105 (01/18 23:16)
s25g5d4:把bat檔丟給我吧 01/18 23:18
---------請複製除了本行以外的以下文字--------- chcp 65001 set list=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2% cmd /c dir /s/b/A:-D "%~dpn1">%temp%\%list%.txt "C:\Program Files\7-Zip\7z.exe" a -t7z "R:\00.7z" @%temp%\%list%.txt pause del %temp%\%list%.txt ---------請複製除了本行以外的以上文字--------- ※ 編輯: ryousuke 來自: 114.41.132.105 (01/18 23:21)
s25g5d4:恩 沒錯 就是%DATE%的問題 01/18 23:21
s25g5d4:改成set list=%RANDOM% 01/18 23:21
改了list也出不來 應該在chcp 65001執行完script就結束了 ※ 編輯: ryousuke 來自: 114.41.132.105 (01/18 23:24)
s25g5d4:難道說XP不能改codepage....囧 01/18 23:25
可以改 不過執行完chcp 65001後script就中斷了 ※ 編輯: ryousuke 來自: 114.41.132.105 (01/18 23:26) 請問s25g5d4桑批次檔有沒有換行符號 我找到解法了 不過太長需要換行 ※ 編輯: ryousuke 來自: 114.41.132.105 (01/18 23:36)
s25g5d4:\n 01/18 23:37
s25g5d4:剛剛開了VM來看 XP cmd對UTF-8的支援性不佳 01/18 23:38
只有字型支援不佳 字碼應該都可以正常處理 ※ 編輯: ryousuke 來自: 114.41.132.105 (01/18 23:41) "C:\Program Files\7-Zip\7z.exe" a -t7z "R:\00.7z" @%temp%\%list%.txt s25g5d4桑可以幫我寫一下上面的命令換行的方法嗎 我換行一直失敗 ※ 編輯: ryousuke 來自: 114.41.132.105 (01/19 00:17)
s25g5d4:單一指令的話不能換行.... 01/19 00:22
s25g5d4:我想改用js or vbs了...bat真OOO麻煩 01/19 00:24
我放棄了 修改後的scrpit在下面 請大家把三行整理成一行吧 s25g5d4桑你看要不要出js或vbs版的scrpit ※ 編輯: ryousuke 來自: 114.41.132.105 (01/19 00:36)