看板 EZsoft 關於我們 聯絡資訊
一般用 7-Zip 解.tar.gz/.tar.bz2/.tbz/.tgz這些壓縮檔時要解兩次 第一次解會出現.tar檔(俗稱打包檔) 然後把.tar檔解壓後才會得到真正的檔案 WinRAR(版本要新一點)可以直接解出真正的檔案 但WinRAR不是freeware 有沒有freeware能做到WinRAR的這個功能呢?? 有, Linux上的"tar"(指令)可以 Linux很多小工具有Windows版本 所以Windows也有"tar"可以用 但缺點是不方便: 必須先進入console mode(開始->執行->cmd) 然後切換到.tar.gz/.tar.bz2/.tbz/.tgz檔所在的資料夾下指令 下面要教的是 在右鍵選單中新增選項 以便一鍵從.tar.gz/.tab.bz2/.tbz/.tgz檔解壓出真正的檔案 而不需在console下指令 Step 1. (下載並安裝MSYS) MSYS是GNU小工具(例如make, gawk, tar,...)在Windows的集合 有MSYS就可以在Windows中用tar了 官網: http://www.mingw.org/wiki/MSYS 載點在 "Installing MSYS" 一節 假設安裝路徑是 C:\msys\1.0 裝好後要把 C:\msys\1.0\bin 加到環境變數"Path"的值裏 Step 2. (在右鍵新增解壓.tar.gz/.tar.bz2/.tbz/.tgz檔的選項) 在 "C:\Documents and Settings\[使用者名稱]\SendTo\" 新增文字檔 取名"tar.bat" 內容如下: @echo off cd %~d1%~p1 mkdir %~n1 move %~n1%~x1 %~n1 cd %~n1 if(%~x1) == (.bz2) goto bz2 if(%~x1) == (.tbz) goto tbz if(%~x1) == (.gz) goto gz if(%~x1) == (.tgz) goto tgz :bz2 "C:\msys\1.0\bin\tar.exe" jxf %~n1%~x1 goto end :tbz "C:\msys\1.0\bin\tar.exe" jxf %~n1%~x1 goto end :gz "C:\msys\1.0\bin\tar.exe" zxf %~n1%~x1 goto end :tgz "C:\msys\1.0\bin\tar.exe" zxf %~n1%~x1 goto end :end move %~n1%~x1 .. 這樣就完成了 以後只要在.tar.gz/.tar.bz2/.tbz/.tgz檔按右鍵 點"傳送到->tar.bat" 就可以一次解出真正的檔案了: http://www.dumpt.com/img/viewer.php?file=uc065u12uokkj3f52w1j.jpg
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.218.106
AsDfJJJ:推用心分享 08/16 05:55
newversion:如果過程中要秀出正在解壓的檔案 zxf 可改成 zxvf 08/17 22:05
newversion:另外解壓 .tar.bz2 .tbz zxf 改成 jxf 08/17 22:07
謝謝 加進去了
yinjing:推分享 08/19 20:55
------- <補充>更簡單的方法 - 安裝Cygwin-Lite跟bzip2 http://cygwin-lite.sourceforge.net/ http://gnuwin32.sourceforge.net/packages/bzip2.htm Cygwin-Lite + bzip2 只要3MB左右的空間 不像 CygWin 或 MSYS+MinGW 要幾十幾百MB - 把"C:\cygwin\bin"和"C:\Program Files\GnuWin32\bin"加到PATH - 將下面內容寫入untar_unzip.bat @echo off echo ================================================================ echo [Fileext] = %~x1 echo [Parent path] = %~d1%~p1 echo [Filename w/ ext] = %~n1%~x1 echo [Filename w/o ext] = %~n1 echo ================================================================ REM cd to where the zipped file located cd "%~d1%~p1" REM unzip the file according to its extension if not ["%~x1"]==[".bz2"] goto endbzip2 echo "fileext is .tar.bz2" "bzip2" -d "%~n1%~x1" "tar" -xf "%~n1" "rm" "%~n1" goto end :endbzip2 if not ["%~x1"]==[".gz"] goto endgzip echo "fileext is .tar.gz" "gzip" -d "%~n1%~x1" "tar" -xf "%~n1" "rm" "%~n1" goto end :endgzip if not ["%~x1"]==[".tgz"] goto endtgz echo "fileext is .tgz" "gzip" -d "%~n1%~x1" "tar" -xf "%~n1.tar" "rm" "%~n1.tar" goto end :endtgz if not ["%~x1"]==[".tbz"] goto endtbz echo "fileext is .tbz" "bzip2" -d "%~n1%~x1" "tar" -xf "%~n1.tar" "rm" "%~n1.tar" goto end :endtbz if not ["%~x1"]==[".tar"] goto tar echo "fileext is .tar" :tar "tar" -xf "%~n1%~x1" "rm" "%~n1%~x1" goto end :end pause - 將untar_unzip.bat放到"C:\Documents and Settings\[id]\SendTo" ※ 編輯: Holocaust123 來自: 140.112.30.32 (11/07 12:29)