(これは、-3 票を獲得した私の以前の質問からの新しい編集です。この新しい質問がより良い資格を持っていることを願っています)
大量のファイルをフォルダーに整理するAutomator サービスを作成する必要があります。イラストレーターを使って作業し、各.aiファイルからさらに 3 つの形式を作成します: [ name.pdf ]、[ name BAJA.jpg ]、[ name.jpg ]、合計 4 つのファイル
私の問題は、1 週間の間に 90 以上の異なる .ai ファイルに対してこのプロセスを繰り返すことです。したがって、90 個のファイル * 4 は360 個の独立したファイルであり、すべていくつかのプロジェクト フォルダーに格納されます。
関連する 4 つのファイルをすべて 1 つのフォルダーにまとめ、フォルダー名を .ai ファイルと同じに設定したいと考えています。
すべてのファイル名が (1 つを除いて) 同一であるため、同じ名前のすべてのファイルを取得し、名前をコピーしてフォルダーを作成し、このファイルをその中に入れるようにファインダーに指示することを考えましたが、ファイル名のバリエーション [名前] があります。 LOW.jpg] 例外として動作するものを削除するようにスクリプトに指示できるかもしれません。
そうすれば、4 つのファイルすべてが 1 つのフォルダーに統合されます。前もって感謝します
更新:この問題はもともと 2013 年に投稿されたもので、現在は解決策があります。このスクリプトを自分のニーズに合わせて組み立てるのを手伝ってくれる人がいます。
これをサービスとして追加し、MacO でキーボード ショートカットを割り当てました。これはコードです:
on run {input, parameters} -- create folders from file names and move
set output to {} -- this will be a list of the moved files
repeat with anItem in the input -- step through each item in the input
set {theContainer, theName, theExtension} to (getTheNames from anItem)
try
# check for a suffix and strip it off for the folder name
if theName ends with " BAJA" then
set destination to (makeNewFolder for (text 1 thru -6 of theName) at theContainer)
else
set destination to (makeNewFolder for theName at theContainer)
end if
tell application "Finder"
move anItem to destination
set the end of the output to the result as alias -- success
end tell
on error errorMessage -- duplicate name, permissions, etc
log errorMessage
# handle errors if desired - just skip for now
end try
end repeat
return the output -- pass on the results to following actions
end run
to getTheNames from someItem -- get a container, name, and extension from a file item
tell application "System Events" to tell disk item (someItem as text)
set theContainer to the path of the container
set {theName, theExtension} to {name, name extension}
end tell
if theExtension is not "" then
set theName to text 1 thru -((count theExtension) + 2) of theName -- just the name part
set theExtension to "." & theExtension
end if
return {theContainer, theName, theExtension}
end getTheNames
to makeNewFolder for theChild at theParent -- make a new child folder at the parent location if it doesn't already exist
set theParent to theParent as text
if theParent begins with "/" then set theParent to theParent as POSIX file as text
try
return (theParent & theChild) as alias
on error errorMessage -- no folder
log errorMessage
tell application "Finder" to make new folder at theParent with properties {name:theChild}
return the result as alias
end try
end makeNewFolder
お役に立てれば。