我有一个在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
您无法访问带有Finder Applescript术语的保存对话框中的设置。
AppleScript的唯一方法是系统事件和GUI脚本。脚本语法在很大程度上取决于特定的UI。
要在其他应用程序中使用保存对话框,您需要稍微更改工作流程。"保存对话框"可与文本(文件/文件夹名称)一起使用,因此您可以在所需的字符串中创建粘贴文本服务。
创建服务,启动Automator应用程序并选择服务(快速操作)文档 - 工作流将具有确定将接受的输入的设置,例如:
Workflow receives current text in any application
接下来,选中Output replaces selected text
框 - 这将用工作流的输出替换所选的文本。
将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
保存工作流程后,应在选择一些文本时可用(在右键单击上下文菜单中)。
与查找器的原始工作流相当于您的原始工作流程,然后将创建一个新文件夹,并在突出显示的"无题"文件夹名称上使用该服务将其更改。