使用TCL&t; tk_getOpenFile压缩多个文件

时间:2015-08-25 15:55:34

标签: shell compression tcl

我在tcl中创建了一个打包器,用户可以从中选择要压缩到包中的文件。

问题是,我无法压缩多个文件,当选择多个文件时,$ file变量中的路径如下所示:" /home/file.txt /home/file2.txt"所以它不能被压缩,因为路径不喜欢。

有没有办法使用tk_getOpenFile函数压缩多个文件?

set types {
    {{Text Files}       {.txt}        }  
 }
 #Here i'm defining that only .txt files can be selected

set file [tk_getOpenFile -multiple 1 -filetypes $types -parent .] 
#the file chooser function in tcl, where it can be chosen multiple files at once, the path of the files go into the $file variable

exec zip -j package.zip $file 
# A shell script function for zipping the files

1 个答案:

答案 0 :(得分:2)

exec zip -j package.zip {*}$file

如果您使用的是Tcl 8.5或更高版本。

{*}前缀重写调用,以便如果后面的表达式是列表,则该列表中的每个元素都将成为调用中的单词。如果$foo的值为{a b c}并且您调用bar abc {*}$foo def,则实际调用将变为bar abc a b c def

只要您保持-multiple选项,就不会有包含空格的文件名。

文档:{*}