
tcl脚本本身对字符串的处理比较简单,所以想着用这个也实现下:
proc main {} {
puts "请输入路径:"
set strpath "E:\\123"
set exepath [pwd]
append exepath "/bin/7z.exe"
set exepath [string map {"/" "\\"} $exepath]
puts $exepath
set filelist ""
cd $strpath
#puts $strpath
catch {set filelist [glob *]}
if {"" == $filelist} {
puts "目录为空"
return
}
foreach strLine $filelist {
set strtemp "$strpath\\$strLine"
if {[file isdirectory $strLine]} {
set str "$strtemp"
append str ".zip"
puts $str
#exec这里不需要判断目录是否有空格,tcl自动处理
exec $exepath a -tzip $str $strtemp
}
}
puts "_end"
}
set strErrInfo ""
if {[catch {main} strErrInfo]} {
error "error = $strErrInfo"
}