我有一个AppleScript,可以完美地在finder中使用。它会创建一个带有日期日期的文件夹,并连接一个快捷键。
但是在另一个应用程序中的保存窗口中,它不起作用。你能帮忙吗?
这是我的代码。
tell application "Finder"
try
if exists Finder window 1 then
set thisPath to (the target of the front window) as alias
else
set thisPath to (path to desktop)
end if
on error
return
end try
end tell
set x to my the_perfect_datestring()
if x is not "-ERROR" then
set fullPath to thisPath & x as text
tell application "Finder"
try
--activate
if not (exists fullPath) then
set y to make new folder at thisPath with properties {name:x}
end if
activate
end try
end tell
end if
on the_perfect_datestring()
try
set cd to (the current date)
set the_year to year of (cd) as number
set the_month to month of (cd) as number
set the_day to day of (cd) as number
if the_month < 10 then set the_month to "0" & the_month
if the_day < 10 then set the_day to "0" & the_day
return ((the_year & "-" & the_month & "-" & the_day) as string)
on error
return "-ERROR"
end try
答案 0 :(得分:0)
您无法使用Finder AppleScript术语访问“保存”对话框中的设置。
使用AppleScript的唯一方法是系统事件和GUI脚本。脚本语法在很大程度上取决于特定的UI。
答案 1 :(得分:0)
要在其他应用程序中使用保存对话框,您需要稍作更改。保存对话框使用文本(文件/文件夹名称),因此您可以创建文本服务以粘贴到所需的字符串中。
要创建服务,请启动Automator应用程序并选择“服务(快速操作)”文档-工作流将具有确定其接受哪种输入的设置,例如:
Workflow receives current text in any application
下一步,选中Output replaces selected text
框-这会将选定的文本替换为工作流的输出。
将 Run AppleScript 操作拖到工作流中,并用新的Run
处理程序和日期字符串处理程序完全替换默认内容,例如:
on run {input, parameters}
set x to the_perfect_datestring()
if x is not "-ERROR" then return x
end run
on the_perfect_datestring()
try
# do your filename stuff
tell (current date) as «class isot» as string
return text 1 thru 10
end tell -- or whatever
on error
return "-ERROR"
end try
end the_perfect_datestring
保存工作流程后,只要您选择一些文本(在右键单击上下文菜单中),该服务就应该可用。
然后,使用Finder与原始工作流程等效的是创建一个新文件夹,并使用突出显示的“无标题文件夹”名称上的服务来对其进行更改。