Edited at

お寺用

More than 3 years have passed since last update.


お寺用

2016/02/28 コピーするように修正

元フォルダの内容をリスト化、

リスト項目が指定したディレクトリ以下で見つかればコピー

リスト項目内容が新規であれば別フォルダにコピー

on open myDrop

display dialog "ドロップしたフォルダ内の項目を元に振り分けます"
set myEPSCount to 0
set myJPEGCount to 0
set myDrop to POSIX path of myDrop
set myList to paragraphs of (do shell script "find " & myDrop & " -iname \"*.*\"")
set myFindDir to POSIX path of (choose folder with prompt "epsのある上位フォルダ")
set myOutDirEPS to POSIX path of (choose folder with prompt "既にある処理済みEPSをコピーするフォルダ")
set myOutDirJPEG to POSIX path of (choose folder with prompt "処理依頼JPEGをコピーするフォルダ")

repeat with i in myList
set iJPEG to do shell script "echo " & i & " | sed \"s|.*/\\(.*\\)\\..*|\\1|\""
set iEPS to do shell script "echo " & iJPEG & " | sed \"s|\\(.*\\)|\\1\\.eps|\""
do shell script "find " & myFindDir & " -iname \"" & iEPS & "\""
if result is "" then
do shell script "cp " & quoted form of i & " " & quoted form of myOutDirJPEG
set myJPEGCount to myJPEGCount + 1
else
do shell script "cp " & quoted form of result & " " & quoted form of myOutDirEPS
set myEPSCount to myEPSCount + 1
end if
end repeat
display alert "JPEGファイルを" & myJPEGCount & "個、EPSファイルを" & myEPSCount & "個コピーしました"
end open

↓要求仕様読み違えてた

on open myDrop

--- デスクトップに作るファイル名を指定
set myEPStext to "~/Desktop/filename_EPS.txt"

tell application "Finder"
activate

-- 処理ファイル数リセット
set myCount to 0

-- ドロップしたフォルダ内のファイルを取得
set myFile to every item of folder (myDrop as string)

-- findコマンドで検索するフォルダを指定。このフォルダから下を全て検索する
set myPath to POSIX path of (choose folder with prompt "切り抜きしたEPSのあるフォルダの最上位フォルダを選択")

-- 検索実行&拡張子を除くファイル名だけをデスクトップに書き出し
do shell script "find " & myPath & " -iname \"*.eps\" | sed \"s|.*/\\(.*\\)\\..*|\\1|\" > " & myEPStext

-- ドロップしたフォルダ内の項目の数だけリピート処理
repeat with i in myFile

-- ドロップしたファイル名から拡張子を削除
set myName to do shell script "echo " & (i's name) & " | sed \"s|\\(.*\\)\\..*|\\1|\""

-- on errorを使うためのtry
try

-- ドロップしたファイル名と同じファイル名が、デスクトップに書き出したファイルリストに存在するか?
set i to do shell script "grep -ixFc " & quoted form of myName & " " & myEPStext

-- ない(エラーが帰る)
on error

-- ラベル付けとカウンタアップ
set label index of i to 2
set myCount to myCount + 1
end try

end repeat
display dialog "切り抜きしていないファイル " & myCount & "個にラベルをつけました"
end tell
end open

スクリプトエディタにコピペ、保存時にファイルフォーマットをアプリケーションにして保存