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 コード 上記はそれだけで、何も含まれていません エラー処理 適切/必要/望まれるかもしれないので、責任はユーザーに適切なものを追加することにあります。 エラー処理 誰にでも コード例 提示または コード 自分で書いた。