3

特定のファイルが存在するかどうかを判断する方法が必要です。存在する場合は、1 つのスクリプトを実行します。そうでない場合は、別のスクリプトを実行します。これがapplescriptの私のロジックです:

If exists "File:Path:To:theFile"

tell application "Finder"
open "File:Path:To:the:script"
end tell

else

tell application "Finder"
open "File:Path:To:the:Anotherscript"
end tell

end if

唯一の問題は、上記のロジックを使用すると、ファイルが見つからないと言ってスクリプトが失敗することがあるということです。ファイルが存在するかどうかを確認するための完全な証拠が必要です。私はターミナル、またはアップルスクリプトを使用することにオープンです。誰かが以前にこれに遭遇したと確信していますが、私はウェブ全体で答えを探しましたが、見つけることができませんでした.

4

3 に答える 3

8

元のコードでは、ファイルへのパスであっても、exists 関数にファイルではなく文字列を指定しています。明示的にファイルを指定する必要があります。そうしないと、実行しようとした場合と同じように処理されます

exists "god"

また

exists "tooth fairy"

exists コマンドは、あなたが話していることを知りません。あなたが使用することができます

return exists alias "the:path:to:a:file" 

ただし、ファイルが実際に存在しないとエイリアスは機能しないため、ファイルが存在しないとエラーが発生します。もちろん、エラーをキャッチしてそれを処理することもできますが、exists 関数にファイル オブジェクトを指定する方が簡単です。ファイル オブジェクトは Finder アプリケーションに属しているため、次のようになります。

return exists file "the:path:to:a:file" of application "Finder"
于 2009-07-14T04:43:27.180 に答える
4

以下を使用して、Finder にアイテムが存在するかどうかを確認します。

on FinderItemExists(thePath)
    try
        set thePath to thePath as alias
    on error
        return false
    end try
    return true
end FinderItemExists

あなたが見逃しているのは、パスをエイリアスに変換していると思います。

于 2009-07-13T12:19:47.720 に答える
0

tryこれは...on errorブロックに適した場所のように思えます。私はあなたが望むことを次のようにすべきだと信じています:

tell application "Finder"
   try
      open "File:Path:To:the:script"
   on error
      open "File:Path:To:the:Anotherscript"
   end try
end tell
于 2009-07-11T14:50:36.770 に答える