带变量的Automator Applescript zip文件cd

时间:2014-03-21 22:47:27

标签: zip applescript relative-path automator cd

我有一个拉链文件夹没有压缩的动作,所以我使用了AppleScript。 但是,我的原始脚本行使用“用户”文件夹中的完整路径创建存档:

do shell script "zip -r0 " & zipFile & " " & itemPath

我试图让 cd 工作,但没有成功:

基本上,我想要zip文件夹:

与源文件夹命名相同,在源文件夹所在的目录中创建,文件夹结构完整存档,使用源文件夹作为根目录的相对路径,最后,没有压缩

这是完整的脚本:

on run {input, parameters}
    set folderName to (input as text)
    tell application "Finder"
        set theItem to folderName as alias
        set itemPath to quoted form of POSIX path of theItem
        set fileName to name of theItem
        set theFolder to POSIX path of (container of theItem as alias)
        set zipFile to quoted form of (theFolder & fileName & ".zip")
        do shell script "cd " & theFolder / "zip -r0 " & zipFile & " " & itemPath
    end tell
    return input
end run

非常感谢任何帮助。

[R

1 个答案:

答案 0 :(得分:1)

尝试使用像这样的Run Shell Script操作:

for f;do cd "${f%/*}";zip "${f##*/}.zip" -x .DS_Store -r0 "${f##*/}";done

${f%/*}/*的末尾删除最短的f模式,${f##*/}*/的开头删除最长的f模式