OPの情報やコメントによれば、これはあなたが求めた通りになります。
に オートメーター :
ワークフローとは 例 AppleScript コード する:
- すべて検索 PDF のファイル ターゲット すべてのサブフォルダを含むフォルダ
- これは 検索アイテムを探す アクション そしてその出力は
AppleScriptを実行する アクション 。
- すべてのリストを作成します PDF その後に変更されたファイル
creation date、あたり 値 の offsetInSeconds 変数 。
- これは最初に行われます
repeat ループ 。基準を満たすファイルは modifiedFilesList 次回使用予定 repeat ループ 。
- 持っているすべてのファイルのリストを作成します 注釈 で作られた スキム 。
- これは
xattr 得るために 拡張属性 ターゲットファイルファイルにターゲットがある場合 拡張属性 ある 旗 に設定されています true そうでなければ、に設定 false。フラグが立てられたファイル true に入る annotatedSkimFilesList 次回使用予定 repeat ループ 。
- その場に埋め込む 注釈 内のファイルに対して行われた スキム 。
- を使う
skimpdf 実用性 スキム のファイルに annotatedSkimFilesList、 注釈 定位置に埋め込まれています。したがって、別のファイルにエクスポートしてから元のファイルを削除して置き換える必要はありません。
注意: 私はこれをテストしました、そしてそれは私のために問題なく動作しますが、それでもあなたが正しいバックアップを持っていると確信するまでこれを実行しないでください!また、実際の検索フォルダの外側に配置されたコピー済みファイルの小さなサンプリングでワークフローをテストする必要があります。テストが完了した後にワークフローが実行されます。
例 AppleScript コード :
on run {input, parameters}
set skimpdfPathFilename to "'/Applications/Skim.app/Contents/SharedSupport/skimpdf'"
set offsetInSeconds to 60
set modifiedFilesList to {}
set annotatedSkimFilesList to {}
repeat with i from 1 to count input
set fileInfo to info for item i of input
set cDate to creation date in fileInfo
set mDate to modification date in fileInfo
if mDate > (cDate + offsetInSeconds) then
set end of modifiedFilesList to POSIX path of item i of input
end if
end repeat
repeat with i from 1 to count modifiedFilesList
set withNotes to (do shell script "xattr " & quoted form of item i in modifiedFilesList ¬
& " | [ $(grep -c \".*_notes$\") -ge 1 ] && printf 'true' || printf 'false'") as boolean
if withNotes then
set end of annotatedSkimFilesList to item i in modifiedFilesList
end if
end repeat
repeat with i from 1 to count annotatedSkimFilesList
do shell script skimpdfPathFilename & space & "embed" & space & ¬
quoted form of item i in annotatedSkimFilesList
end repeat
end run
を理解する do shell script コマンド 第二に repeat ループ :
あるとき PDF です 注釈付き に スキム そして保存しました、 拡張属性 ファイルに設定されています。
$ xattr Filename.pdf
com.apple.FinderInfo
net_sourceforge_skim-app_notes
net_sourceforge_skim-app_rtf_notes
net_sourceforge_skim-app_text_notes
$
の 出力 配管されている | に:
[ $(grep -c \".*_notes$\") -ge 1 ] && printf 'true' || printf 'false'
どのテスト 出力 の grep の出現回数を数える パターン で、もし grep の1つ以上の出現を見つけます パターン 、 そうして 値 の withNotes 変数 に設定されています trueに設定されている間 false さもないと。
ご了承ください スキム 組み込みのコマンドラインユーティリティがありますか。 /Applications/Skim.app/Contents/SharedSupport/skimnotes それをテストするために使用することができます PDF 持っている 注釈 で作られた スキム しかし、そのために 出力 このユーティリティは、 シェルスクリプト 駆け込む ターミナル それから do shell script コマンド そしてなぜ私が使ったのか xattr そして grep 代わりに。
注意: の 例 AppleScript コード 上記はそれだけで、何も含まれていません エラー処理 適切/必要/望まれるかもしれないので、責任はユーザーに適切なものを追加することにあります。 エラー処理 誰にでも コード例 提示または コード 自分で書いた。