2012-01-07

備份 (on Windows)

跟之前一樣的程式,只是加上 GUI 表示目前正在備份中,加上練習 thread 使用的部份。

#!/usr/bin/tclsh
#
# This file is used to backup my homepage
#

package require Tk
package require Thread

set ::gThread [thread::create {thread::wait} ]

label .greetings -text "Now backup my homepage..." -bd 4 -relief ridge
pack .greetings -fill both

wm title . "Backup"

thread::send -async $::gThread { 
    set backupfile $env(HOME)
    append backupfile "\\My Documents"
    append backupfile "\\Homepage-"
    append backupfile [clock format [clock seconds] -format %Y%m%d]
    append backupfile ".7z"

    set backupdir $env(HOME)
    append backupdir "\\My Documents"
    append backupdir "\\public_html"

    set fileExist [file exists $backupfile]
    if {$fileExist > 0} {
        puts "Now try to remove old backup file."
        file delete $backupfile
    }

    set var [list 7z a $backupfile $backupdir]
    exec {*}$var        
} result


vwait result
exit

沒有留言: