ファイルフォルダ内に新しいテキストファイルを作成するために「サービス」に表示されるFinderオートマトンアイテムを作成するにはどうすればよいですか?私はTextMateを使用しているので、ソリューションが(TextEditを使用するよりも)エディターに依存しない方が良いです。
方法:ダミーのテキストファイルを作成し、ドキュメント内のフォルダーに保存します(これは、サービスが実行されるたびにテンプレートとして使用されます)。次に、次のようにワークフロー(サービス)を作成します。
ここで行う必要があるのは、新しいファイルを配置するフォルダーを右クリックし、このワークフローを保存して作成したサービスを選択することだけです。
新しく作成したファイルを開くには、「Finderアイテムを開く」アクションを追加します。このアクションでは、TextEditではなくTextMateを選択します。エディターに依存しないようにするには、デフォルトのアプリケーションで開くように指示すると、そうなります。
実行時に名前を尋ねることが非常に重要な場合は、テキストの取得アクションを追加して2番目の変数に割り当て、コピーアクションの後に名前の変更アクションを追加して、テキストの置換と言い、テンプレートファイルの名前を置き換えることができます。テキスト変数を使用します。デフォルトでは、私が説明した方法でテキスト変数を使用することはできませんが、次の投稿はその回避策を提供します。私はそれが10.6で動作することを知っており、以前のバージョンのOSXでは動作する場合と動作しない場合があります。
手順については ここ を参照してください
これはオートマトンアクションではありませんが、必要な場所に新しいファイルを作成する問題を解決しました: http://ignorethecode.net/blog/2009/05/31/creating-new-documents/ 。 「さらに良い解決策」(ページの下部)と呼ばれる解決策を見てください。
これは機能するはずです:
do Shell script "echo '[text for the text file]' > [path to folder & file].txt"
空のテキストファイルが必要な場合は、次のことを試してください。
do Shell script " > [path to folder and file].txt"
編集:私はあなたの質問をもう一度読みました...これはAppleScriptです。 AutomatorやAppleScriptよりもプレーンターミナルの方が経験が豊富ですが、AutomatorからAppleScriptを呼び出すことができると思いますか?
さて、私はだましましたが、あなたはまだAutomatorサービスを受けています。 TextMate シェルを使用するためのセットアップ が必要になります(通常、最初にインストールするときにこれを行うため、CLIからmate
を使用できます)。
Automatorを開き、新しいサービスを作成します
UtilitiesからRun Shell Scriptウィンドウ上にドラッグします。
次のスクリプトをドロップします。
cd ~/Desktop;
touch newfile.txt;
mate newfile.txt
これが基本的に行うことは、デスクトップにnewfile.txtという名前のファイルを作成し、TextMateで開くことです。
要求された更新:
OlivierFabré によって作成された次のApplescriptを貼り付けます。
on run {input, parameters}
tell application "Finder"
set currentPath to insertion location as text
set filePath to POSIX path of currentPath & input
end tell
tell application "TextMate"
activate
open filePath
end tell
return input
end run
サービスを保存する
これは何をしますか:
アプリケーションでテキストを選択すると、選択したテキストの名前が付いた空白のTextMateファイルが最前面のFinderウィンドウに開きます。
おそらくあなたがやろうとしていること:
他の人々は、FinderツールバーにあるTextMateボタンを作成して、そのウィンドウで空白のドキュメントを開くか、TextMateで選択したファイルを開くことについて チュートリアル と書いています。これはあなたがやりたいことのように聞こえ、Automatorを必要としません。
少しすっきりしたfiniteloopの答えの修正。
これで、フォルダをクリックすると、下部にある[サービス]メニューに移動して、機能を見つけることができます。
この機能は、[サービス設定]ページにも表示されます。 [設定]-> [キーボード]-> [ショートカット]-> [サービス](左側)。ここで有効または無効にできます。キーボードショートカットを割り当てることもできます。最後に、フォルダサブメニューから十分な数の項目を選択解除すると(4つ以下になるように)、関数はコンテキストメニューの下部に表示されます。
try
tell application "Finder"
set ans to text returned of (display dialog "" default answer "")
set opn to 0
set fn to "new.txt"
if ans is "," then
set opn to 1
else if ans is "/" then
set opn to 2
else if character -1 of ans is "," then
set fn to text 1 thru -2 of ans
set opn to 1
else if character -1 of ans is "/" then
set fn to text 1 thru -2 of ans
set opn to 2
end if
if character -1 of fn is "." then
set fn to fn & "txt"
end if
try
set p to target of window 1
on error
set p to desktop as alias
end try
set f to make new file at p with properties {name:fn}
set selection to f
if opn is 1 then
open f
else if opn is 2 then
open f using (path to application "TextMate")
end if
end tell
end try
私はこれを FastScripts 経由で使用していますが、Automatorサービスとしても機能するはずです。そして、はい、このスクリプトはAppleScript標準でも醜いです。