2011/02/17

7-Zip

官方網站:http://www.7-zip.org/

7-Zip 是一個免費的壓縮軟體,擁有自己的壓縮技術,副檔名為 .7z
但他同時也可以解壓縮市面上比較常見的 Zip 以及 RAR
同樣的擁有 GUI 以及 Command Line 兩種 mode

GUI

這是 7z 的 GUI 模式

我建立了兩個文字檔案叫 1.txt 跟 2.txt
壓縮的方式很簡單,選擇下方你要壓縮的檔案之後,點上方的加入



可以決定檔案名稱、檔案目標路徑、模式、密碼,也可以決定當壓縮檔超過幾 MB 的時候拆開檔案分別放置
這些內容跟 WinRAR 差不多,基本上用預設值就可以達到一般目的



按下確定後就產生了一個 7z.zip


選擇好目的後按下確定即可解壓縮


按下測試按鈕可以查看壓縮檔案健不健康


點檔案兩下可以進去看到壓縮的內容

選擇某些檔案之後可以使用上方的複製按鈕將檔案複製到其他位置,移動的話則是搬運
刪除按鈕基本上可以用 delete 鍵達到同樣的效果





在安裝完 7z 之後,可以對檔案使用左鍵即可達到壓縮以及解壓縮的功能
這是最快也是最一般的處理方式,不過就不像 GUI 有那麼多選項可以使用

Command Line
7z 有提供 command line 的模式,可以在 dos 底下執行

http://dotnetperls.com/7-zip-examples
這個網站有對 command line 詳盡的介紹,我在這邊介紹一些比較常用的功能

  a: Add files to archive 壓縮檔案
  d: Delete files from archive 從壓縮檔中刪除檔案
  e: Extract files from archive (without using directory names) 解壓縮檔案
  l: List contents of archive 呈現壓縮檔案內容
  t: Test integrity of archive 測試壓縮檔案
  u: Update files to archive 更新壓縮檔案
  x: eXtract files with full paths 無視路徑解壓縮檔案

在這邊我使用 command line 來達成我們剛剛使用 GUI 的結果

1. 壓縮
7z a 7z.zip *
*號為 DOS 指令,此指令會將當下目錄所有的檔案及目錄都壓縮進 7z.zip,你也可以個別指定

7z a 7z.zip *.txt
只壓縮附檔名為 txt 的檔案

7z a 7z.zip a*.txt
只壓縮開頭為 a 附檔名為 txt 的檔案

7z a 7z.zip 1.txt test
假設目前有 1.txt 2.txt 以及 [test] 這個目錄,今天要壓縮 1.txt 以及包涵 [test] 目錄的話,指令這樣下即可,以此類推

2. 解壓縮
我們現在有一個包涵 1.txt 以及 2.txt 的 7z.zip,解壓縮的方式為
7z e 7z.zip

因為我們現在所在的資料夾這兩個檔案本來就存在,所以 7z 會有詢問的動作
(Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit?

Yes 覆蓋
No 不覆蓋
Always 全部覆蓋
Skip all 全部不覆蓋
Auto rename 自動編檔名,7z 會幫你把該檔案加上 "_序號"做檔案的區隔
Quit 離開

我們可以指定解壓縮目錄,便不有這個問題,假設我們要傳到 [test] 目錄,指令如下
7z e 7z.zip -otest
-o 是output的意思,與目錄明稱不用空白鍵間隔,若資料夾不存在則會自動幫你建立

7z 提供一種很酷的解壓縮方式
7z x 7z.zip

x 這個指令可以不管原始檔案的目錄結構,把所有的檔案都解壓縮到根目錄,搭配檔案篩選的話可以很輕易就只解出我們要得東西,例如
7z x 7z.zip *.doc
這樣就只會解出所有的 word 檔案而已

3. 列出檔案
7z l 7z.zip

7-Zip 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18

Listing archive: 7z.zip

--
Path = 7z.zip
Type = zip
Physical Size = 1020

   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2011-02-17 19:49:12 ....A          159           95  1.txt
2011-02-17 19:49:15 ....A         3121          659  2.txt
------------------- ----- ------------ ------------  ------------------------
                                  3280          754  2 files, 0 folders


這個指令可以列出所有壓縮檔案的內容

4. 測試檔案
7z t 7z.zip

7-Zip 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18

Processing archive: 7z.zip

Testing     1.txt
Testing     2.txt

Everything is Ok

Files: 2
Size:       3280
Compressed: 1020

這個指令會檢查壓縮檔案的健康程度


5. 更新檔案
7z u 7z.zip *.txt
這個指令基本上跟 a 的意思差不多,但他只會將較新的檔案更新至壓縮檔裡

6. 刪除壓縮檔案內容
7z d 7z.zip 1.txt
利用這個指令將 1.txt 從 7z.zip 裡面刪除

7z l 7z.zip

利用 l 指令檢視一下,果然只剩下 2.txt 了

7-Zip 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18

Listing archive: 7z.zip

--
Path = 7z.zip
Type = zip
Physical Size = 803

   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2011-02-17 19:49:15 ....A         3121          659  2.txt
------------------- ----- ------------ ------------  ------------------------
                                  3121          659  1 files, 0 folders



2011/02/16

FastCopy - 最快的檔案拷貝工具

這兩天在逛公司阿龍的資料夾的時候
發現他有一個分類叫做最快的檔案拷貝工具
居然有這麼囂張的軟體而我不知道?
尋線找到了他的官網,使用一會發現的確還不錯
在這邊寫一些使用方式跟大家分享


官方網站
http://ipmsg.org/tools/fastcopy.html.en


FastCopy (簡稱 FC )有兩種使用方式,GUI 以及 Command Line

這是他的 GUI 介面

Source: 來源
DestDir: 目的


這兩個東西我想不用多做解釋,右方的下拉選單是重點
ModeDetail
Diff (No Overwrite)Copy if the same filename doesn't exist in destination.
如果目標資料夾沒有相同的檔案時則複製
Diff (Size/date)Copy if size or date is different, or if it doesn't exist (in default)
如果檔案不存在或者是大小以及尺寸不相同則複製(預設值)
Diff (Newer)Copy if source file timestamp is newer or doesn't exist.
檔案不存在,或者是原始檔案的時間比較新的話則複製
Copy (Overwrite all)Always copy/overwrite all.
不管怎樣都複製以及覆蓋
Sync (Size/date)Copy
if size or date is different, or doesn't exist. In addition, delete all
destination files/directories that don't exist in source.
如果目標資料夾檔案時間與大小不同、或者市不存在則複製,除此之外,會刪除目標資料夾裡面不存在於來源資料夾的檔案,也就是同步兩個資料夾的意思
Move (Overwrite all)Always
copy/overwrite all and delete all copied source files. (It is able to
change "Move (Overwrite all)" -> "Move (Size/date)" in settings
dialog.)
搬運檔案,也就是複製完畢之後來源資料夾會被清空
DeleteDelete all files/dirs by force.
刪除檔案

所以當你選了來源以及目標之後,再選擇你要做的事情,執行右方的 Execute,FC 就會用很快的速度幫你完成


這是使用 Windows Vista 5400 轉硬碟的速度


這是使用 FC 的速度,差了將近一倍

另外,我們可以將 FC 的功能註冊到滑鼠右鍵,點選上方的 Option,選 Shell Extension,將左右兩方的 Use sub menu 都打勾,如果你遇到權限的問題,請先關閉 FC,並且用系統管理員的身份執行,這樣就可以順利註冊了






註冊成功以後,我們可以直接在檔案上面按右鍵,來使用 FC 的功能

Command Line
FC 支援 Command Line 的指令,所以我們可以把我們的備份需求寫成 bat 檔,用排程定期執行
就可以得到一個又方便又迅速的檔案備份功能,官網有詳盡的 command line 指令說明,我講幾個我覺得比較會用到的


/cmd=(noexist_only|diff|update|sync|force_copy|move|delete) ... Specify operation mode.
(By default, diff mode is used. If delete mode is specified, then "/to=" option isn't used.)
cmdline in GUI
noexist_only Diff (No Overwrite)
diff Diff (Size/date)
update Diff (update)
force_copy Copy (Overwrite)
sync Sync (Size/date)
move Move (Overwrite)
delete Delete

等同於 GUI 裡面那幾個功能


/auto_close ... Close automatically after execution is finished with no errors
執行之後自動關閉 GUI

/no_confirm_del ... Don't confirm before deleting.

刪除功能不顯示確認視窗

假設今天要複製資料夾,指令為
C:\>fastcopy /cmd=diff /auto_cloce c:\source /to=c:\destination
若目的資料夾不存在時,FC 會自動幫你建立

要刪除資料夾的話就是
C:\>fastcopy /cmd=delete c:\destination

如果不想確認又不需要看到 GUI 提示的話則為
C:\>fastcopy /cmd=delete /no_confirm_del /auto_close /to=c:\destination

想要達到怎樣的需求從官方提供的 api 去做變化搭配,例如說 log 之類的都可以做

2011/02/08

今天又槓龜了~

雖然每次都告訴自己不要抱什麼期望
但 4 組號碼只中一個號碼還是很幹得 = =