Applescript:在将文件夹项目添加到时;不使用循环重命名文件
我创建了一个水滴,它允许我从输入框重命名文件Applescript:在将文件夹项目添加到时;不使用循环重命名文件,applescript,directory,finder,Applescript,Directory,Finder,我创建了一个水滴,它允许我从输入框重命名文件 on adding folder items to este_folder after receiving este_file display dialog "what's their name?" default answer "" set text_returned to text returned of the result & ".jpg" display dialog text_returned
on adding folder items to este_folder after receiving este_file
display dialog "what's their name?" default answer ""
set text_returned to text returned of the result & ".jpg"
display dialog text_returned
tell application "Finder"
set the name of file este_file to text_returned
end tell
end adding folder items to
它工作正常,但它创建了一个循环,我必须再次点击cancel停止脚本,因为它认为已经添加了一个新文件。我只想给它重新命名一次;然后就不会再次弹出第二个对话框。我已尝试将文件重新路由到另一个文件夹:
on adding folder items to este_folder after receiving este_file
display dialog "what's their name?" default answer ""
set text_returned to text returned of the result & ".jpg"
display dialog text_returned
tell application "Finder"
set the name of file este_file to text_returned
end tell
repeat with anItem in este_file
tell application "Finder"
set destFolder to "Macintosh HD:Users:maxwellanderson:Desktop:BetterinTexas" as alias
move anItem to folder destFolder
end tell
end repeat
end adding folder items to
但这也不起作用,因为它不会处理脚本的重命名部分。关于如何摆脱第二个对话框,有什么建议吗?脚本被调用了两次,因为重命名监视文件夹中的文件是出于所有目的,比如在文件夹中添加新文件。因此,在实际添加文件时调用一次;并在重新命名后再次调用 按照您的建议移动文件将起作用,但您必须在重命名文件之前移动该文件。因此,将移动文件的代码推到脚本顶部附近,然后将重命名位推到底部 作为旁注,我注意到您有一个
repeat with
循环来处理多个文件移动,但只有一条语句处理单个文件重命名。其中一个与另一个不同。如果此监视文件夹同时收到多个文件,则很可能会将它们全部重命名为同一名称,从而可能会过度写入多个文件。如果关注的文件夹一次只接收一个文件,则repeat with
循环是多余的
此代码以您的文件为模型,将处理单个文件的移动和重命名(但不是一组文件,或者更准确地说,如我前面所述,它将多个文件重命名为相同的名称,从而覆盖列表中除最后一个以外的所有文件):
如果您需要它来处理多个文件,那么您可以像在第二个代码块中所做的那样,将从set text\u returned
到到text\u returned
的所有内容包装在一个repeat with
循环中。这将按顺序为每个文件打开一个对话框,并相应地移动/重命名文件
如果您有任何问题,或需要澄清,请留下评论,我会回复您。脚本将被调用两次,因为重命名监视文件夹中的文件是出于所有目的,例如将新文件添加到文件夹中。因此,在实际添加文件时调用一次;并在重新命名后再次调用 按照您的建议移动文件将起作用,但您必须在重命名文件之前移动该文件。因此,将移动文件的代码推到脚本顶部附近,然后将重命名位推到底部 作为旁注,我注意到您有一个
repeat with
循环来处理多个文件移动,但只有一条语句处理单个文件重命名。其中一个与另一个不同。如果此监视文件夹同时收到多个文件,则很可能会将它们全部重命名为同一名称,从而可能会过度写入多个文件。如果关注的文件夹一次只接收一个文件,则repeat with
循环是多余的
此代码以您的文件为模型,将处理单个文件的移动和重命名(但不是一组文件,或者更准确地说,如我前面所述,它将多个文件重命名为相同的名称,从而覆盖列表中除最后一个以外的所有文件):
如果您需要它来处理多个文件,那么您可以像在第二个代码块中所做的那样,将从set text\u returned
到到text\u returned
的所有内容包装在一个repeat with
循环中。这将按顺序为每个文件打开一个对话框,并相应地移动/重命名文件
如果您有任何问题或需要澄清,请留下评论,我会回复您。如果该文件夹是当前桌面的子文件夹,您只需编写
将文件este_文件移动到桌面的文件夹“BetterineTexas”
或更短的将文件este_文件移动到文件夹“BetterineTexas”
如果文件夹是当前桌面的子文件夹,您只需编写将文件este\u文件移动到桌面的文件夹“BetterineTexas”
或更短的将文件este\u文件移动到文件夹“BetterineTexas”
on adding folder items to este_folder after receiving este_file
set destFolder to POSIX file "/Users/maxwellanderson/Desktop/BetterinTexas" as alias
set text_returned to text returned of ¬
(display dialog "what's their name?" default answer "") ¬
& ".jpg"
display dialog text_returned
tell application "Finder" to ¬
set the name of ¬
(move file este_file to destFolder) ¬
to text_returned
end adding folder items to