我想做一个Applescript。我想在上面放置一个文件(.app 文件),然后它应该在与放置的文件相同的目录中创建一个名为“Payload”的文件夹。比它应该复制拖放到 Payload 文件夹的文件。现在应该压缩有效负载文件夹。扩展名应该从 .zip 更改为 .ipa。现在应该将 .ipa 文件重命名为已删除文件的文件名。最后它应该删除已创建的文件夹(如果还没有),并且删除的项目也应该被删除。
我怎样才能做到这一点?
非常感谢。
没看懂?请发表评论。:)
我想做一个Applescript。我想在上面放置一个文件(.app 文件),然后它应该在与放置的文件相同的目录中创建一个名为“Payload”的文件夹。比它应该复制拖放到 Payload 文件夹的文件。现在应该压缩有效负载文件夹。扩展名应该从 .zip 更改为 .ipa。现在应该将 .ipa 文件重命名为已删除文件的文件名。最后它应该删除已创建的文件夹(如果还没有),并且删除的项目也应该被删除。
我怎样才能做到这一点?
非常感谢。
没看懂?请发表评论。:)
首先,我假设您正在用一个tell application "Finder"
步骤编写 Finder 脚本。如果是这种情况,请查看move
Finder 字典中的命令以移动文件和delete
删除文件。
关于压缩,当我需要使用 AppleScript 压缩文件时,我发现使用 shall 命令do shell script
和 zip 命令行工具(man zip
在终端窗口中键入或查看在线手册页)。
如果您不熟悉move
,delete
和do shell script
,请查看 Finder 的 AppleScript 字典(对于move
和delete
以及标准脚本添加(对于do shell script
)。
结合查克的回答,您可以使用文件夹操作来完成此操作...
您可以使用文件夹操作作为答案
首先,创建您的文件夹。
Puis,写这个 AppleScript
on adding folder items to theAttachedFolder after receiving theNewItems
-- Get the name of the attached folder
tell application "Finder"
set theName to name of theAttachedFolder
-- Count the new items
set theCount to length of theNewItems
-- Display an alert indicating that the new items were received
activate
display alert "Attention!" message (theCount & " new items were detected in folder " & (quoted form of theName) & "." as string)
-- Loop through the newly detected items
repeat with anItem in theNewItems
-- Process the current item
-- Move the current item to another folder so it's not processed again in the future
end repeat
end tell
end adding folder items to
将文件夹操作添加到文件夹的说明:
或者在 Automator 中,您可以使用此代码添加 AppleScript,您只需从 automator 设置一个变量并将其返回给 AppleScript,用于放置在 targetFolder 中的文件夹。
set theFolder to "Folder_child:Folder_Grandchild:Folder_Great-Grandchild"
set theNewFolder to "Folder_First_Great_Grandchild"
if FolderExists(theFolder) = true then
--display dialog "Exists " & theFolder & " !"
--delete the file
else
--display dialog "Missing " & theFolder & " !"
-- do nothing or something else
end if
--handler for checking if exists theFolder/thePath
on FolderExists(theFolder) -- (String) as Boolean
tell application "System Events"
if exists folder theFolder then
return true
else
return false
end if
end tell
end FolderExists
这就是我现在找到的全部。
此致