Automatorプリントプラグイン

以前にも質問させて頂きまして、プリントプラグインで作成されたPDFを特定のフォルダに移動し、

更にクリップボードから受け渡された文字列でリネームにするスクリプトをつくりました。

その時教えて頂いた内容が以下のとおりです。

ユーザがアップロードしたファイル

実行していて気がつきました。


まずプリントプラグインを実行する際のファイル名が「ABCD.xls」というExcelのドキュメントだったとし、

かつクリップボードの内容が「XYZ.pdf」とします。

このスクリプトを実行させると、OSが勝手に、ABCD.xls.pdfというPDFを作成します。

次にAppleScriptが、ABCD.xls.pdfをXYZ.pdfにリネームします。

この動作は問題ないのですが、このプリントプラグインを2回実行したすると、

既にXYZ.pdfというファイルが存在した場合、リネームを実行しません。

ABCD.xls.pdfは新しく上書きされますが、XYZ.pdfが存在するためリネーム出来ずに終了するようです。


出来れば上書きしたいと考えてます。

何か解決策があればご指導下さい。

Mac mini, Mac OS X (10.6.8)

投稿日 2013/07/30 01:52

返信
返信: 6

2013/07/30 04:30 へなちょこ への返信

失礼致します。 プリントプラグインを2回実行する際に、既にXYZ.pdfというファイルが存在しなければ、正常にリネームを実行するのであれば、リネームを実行する前にそのファイルを削除するとよいのではないでしょうか?


set fileName to the clipboard as text -- as textが有った方がいいかも?


の後に、


set thePath to "MOUNTAIN LION:Users:UserName:Desktop:" -- Fax(PDF)フォルダーへのパス

set theFileToDelete to thePath & fileName


を入れて、


tell application "Finder"

if exists alias theFileToDelete then

delete aliastheFileToDelete

else

set name of alias (input as Unicode text) to theFileName

end if

end tell


とするとどうでしょう?

2013/07/30 04:40 へなちょこ への返信

リネームしてからファイルを移動すれば良いと思います。こうするとファイルを削除しなくても大丈夫かと。


プリントプラグイン

AppleScript を実行

on run {input}     tell application "Finder"         -- リネーム処理                 return "__リネーム後のフルパス__" as alias     end tell end run

Finder 項目を移動

保存先:xxx 既存のファイルを置き換える

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

Automatorプリントプラグイン

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。