LoginSignup
0
0

More than 5 years have passed since last update.

お寺用

Last updated at Posted at 2016-02-27

お寺用

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

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0