2012-02-18 5 views
1

私は書いたAppleScriptの問題があります。このスクリプトは、フロントデスクトップウィンドウのパスは、デスクトップフォルダ内にあるかどうかを確認する必要があります。これはスクリプトである(つまり、プレフィックス一致。):それを実行するのがフロントデスクウィンドウのパスがAppleScriptのDesktopフォルダ内にあるかどうかを確認してください

tell application "Finder" 
    set currentPath to (POSIX path of (target of front window as alias)) 
end tell 
set thecommandstring to "echo \"" & currentPath & "\" | grep -q \"^/Users/host/Desktop/\" " 
set grepResult to do shell script thecommandstring 

はエラーを与える:

error "The command exited with a non-zero status." number 1 

私はApplescriptの初心者であり、非常に基本的な間違いをしているに違いない。誰かが私がどこに間違っているか教えてくれますか? adayzdoneの私の編集が受け入れられるか、私は新しい答えでそれを掲載する予定です何もされていないようですので、まあ

tell application "Finder" 
set desktopPath to path to desktop 
set windowPath to (target of the front window as alias) 
if windowPath contains desktopPath then 
    beep 
end if 
end tell 

答えて

1

+0

私は明日テストするためにコンピュータの前に戻ってくるまでアップデートを投稿しませんでした。助けてくれてありがとう。 – adayzdone

+0

それは完璧に動作します..ありがとう! –

0

はこれを試してみてください。彼の問題は、非文字列オブジェクトとの文字列比較を行うため、機能しないということです。

+0

ファイルシステムの参照として、エイリアスは単なるパス以外のものであることに注意してください。たとえば、アイテムの名前を変更したり移動したりしても機能します。パスを確認するには、エイリアスをテキストに強制変換するか、それ以外の方法で比較を行う必要があります。 –

+0

そのためのアカウントがありませんか?エラーが発生していますか? – adayzdone

+0

Finderウィンドウがある間はエラーはありませんが、Finderウィンドウのターゲットがデスクトップの場合にのみスクリプトに一致します。たとえば、ターゲットがデスクトップ上の別のフォルダの場合、ターゲットのパスにデスクトップへのパスが含まれていても一致しません。希望の結果を得るには、(質問を誤解していない限り)比較のためにパスを解決する必要があります。 –

関連する問題