0

AppleScript を使用して、フォルダー内のファイル全体を圧縮しようとしています。私はこのコードを使用し、

tell application "Finder"
    set x1 to (path to home folder as text)
    set theItem to x1 & "Documents:MyFolder" 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 "zip -r " & zipFile & " " & itemPath
end tell

これは正常に動作します。しかし、zipファイル内でこのようにフォルダー構造全体を圧縮し、

ユーザー:マイユーザー:ドキュメント:マイフォルダー:

このフォルダー構造を使用せずに、フォルダー内のファイル全体を圧縮したいだけです。でさえないということMyFolderです。zipファイル内のファイルのみ。

?

4

1 に答える 1

1

以下は、 内のすべてのファイルを zip して にitemPath出力する簡単な変更zipFileです。

tell application "Finder"
    set x1 to (path to home folder as text)
    set theItem to x1 & "Documents:MyFolder" 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 " & itemPath & ";zip -r " & zipFile & " *"
end tell

これをそのまま実行すると、MyFolder の内容を含むドキュメントに MyFolder.zip が作成されます。

ここで行われているトリックは、スクリプトが最初にフォルダーに cd を実行し、次に再帰的に zip on*を呼び出すことです。これは、現在のディレクトリ (zip 対象のターゲット) 内のすべてのファイルを表します。

于 2013-07-07T17:40:40.187 に答える