2012-01-03 7 views
1

これは非常に簡単で非常に簡単だと確信していますが、私は完全なAppleScriptのnoobです。 スクリプトは、次の条件を満たす必要があります。kindAppleWorks documentあるすべてのitemのボリュームを通じてApplescript:指定された場所にある特定の種類のすべてのファイルのパスを検索して記録する方法

  1. 検索(ファイル拡張子うではないで十分、埋め込まれたメディアとの事前のOS XのAppleWorksの書類を効率的にパッケージではなく、ドキュメントあったように)。

  2. 各文書のパスとファイル名(なし、なし)を後で使用するために記録します。

  3. 各ドキュメントを別のボリュームにコピーします。

  4. さまざまな非プログラム的な方法で各ドキュメントを手動で更新し、尋ねないで、私は本当にこれを行う必要があります。

  5. 元のファイル名(拡張子にもかかわらず)と元のパスを使用して、各オリジナルファイルを更新されたバージョン(おそらくiWork形式)に置き換えます。

私が始まるよ:

tell application "Finder" to get the path of every item in startup disk 

しかし、すぐに提示しています:

error "Finder got an error: Can’t get directory of startup disk." number -1728 from directory of startup disk 

私はいくつかのプログラミング言語ではかなり精通したんだけど、私は文字通りについて何も知りませんAppleScript。情報を収集する方法(つまり、pathまたはdirectoryを使用する必要がありますか?)についての基本的なポインタでさえ、itemsなどについては分かります。私は管理する上司のコンピュータ上でほぼランダムに配布されている数千のファイルを持っている!

答えて

3

ご利用になる前に、使用できるコマンドを見つける方法を説明します。すべてのアプリケーションには、リンスクリプト用語と使用法の「辞書」があります。各アプリケーションは異なるので、正しい用語を見つけるために辞書を見なければなりません。 Finderから始めましょう。 AppleScriptエディタを開き、ファイルメニューの下に「辞書を開く」と表示されます。それを選択すると、すべてのアプリケーションのリストが表示されます。 Finderを見つけて開きます。辞書を閲覧することはできますが、すでにいくつかの用語を知っているので、検索フィールドを試してみてください。 「アイテム」を検索してみてください。あなたはおそらく多くの "項目"の結果のリストを取得しますが、種類が "クラス"のものを探したいとします。これをクリックすると、クラスファイルが表示され、そのプロパティが表示されます。それらはあなたが検索できるものです。

アイテムを取得するだけでパスが取得されるため、パスを取得する必要はありません。 「kind」プロパティと「name extension」プロパティがあり、探している特定のドキュメントタイプを見つけるのに役立ちます。

通常、何かの項目を取得すると、トップレベルの項目のみが取得されます。あなたは、サブフォルダ内のアイテムを取得しません。また、サブフォルダを検索するには、 "全体の内容"コマンドを使用する必要があります(辞書内にもあります)。

最後のヒントには、多くの種類の「アイテム」があります。あなたが探しているアイテムの特定のタイプに焦点を当てて検索範囲を絞り込むことができます(辞書にもさまざまなタイプのアイテムがあります)。あなたは "ドキュメントファイル"タイプが必要です。

それで、すべてのappleworksファイルを見つけるために私がやるべきことはここにあります。まず、appleworksファイルの "kind"プロパティを調べて、スクリプトで使用できるようにする必要があります。これを実行し、appleworksファイルを選択して、結果を確認します。プロパティのレコードを取得します。今

...それは「AppleWorksの」とは異なるものになるかもしれません...このスクリプトにあなたの親切値を入れて「種類」の値を見て、2番目のスクリプトであることを使用して...

set a to choose file 
tell application "Finder" to return properties of a 

tell application "Finder" 
    set theAppleworksDocs to document files in entire contents of startup disk whose kind is "AppleWorks" 
end tell 

これはあなたにファイルのリストを返します。それはリストなので、リスト上で繰り返しループを使用し、各リスト項目にその名前を照会して別のディスクにコピーすることができます。これはおそらく、ハードドライブ全体を検索するため、時間がかかることに注意してください。

もっと速い方法があります。あなたは、unixユーティリティ "mdfind"を使って、applescriptからスポットライト検索を実行できます。しかし、検索するファイルのkmdItemContentTypeや他のものを知る必要があります...今のところFinderに固執してください。あなたは、あなたが仕事の他の部分をやっているときは、Finderが必要になります。

幸運を祈る!

+0

ありがとうございました*私は必要なコードと多くの背景情報の両方を書く時間がかかりました。 – Jonline