ファイル名のCSVから、フォルダ(またはサブフォルダ)に複数のファイルを見つけて開きます
-
20-08-2019 - |
質問
各カメラのフォルダは写真の何千もを持って、私はすべて1内の任意の1つ以上のフォルダに配置することができ、20かそこらの特定のファイル、「ルート」フォルダを開く必要があります
写真
| - CameraA
| - CameraB
| - CameraC
私は(AppleScriptを入力するために私を促すことができるか?または好ましく)、アップルスクリプトへのファイル名のCSV(例えば6504、6505、8902、4501)を貼り付けるのが好き、それを実行し、Photoshopで開いているファイルと思います。 それはスポットライトでは一度に一つのファイルを検索するには面倒だ!
私は、単一のファイル、Photoshopでファイルを開くためのスクリプトを検索するためのスクリプトを設置しましたが、私は、配列やループで絶望的だこれを行うことができますAppleScriptを想定します。
解決
あなたが本当にそれを具体的にAppleScriptをする必要がありますか?あなたは私に言わせればそれはシェルスクリプトで簡単です。
for f in 6504 6505 8902 4501; do find . -name "$f" -exec open -a "Photoshop" {} \;; done
どこの番号は、ご希望のファイル名に置き換えられ、「フォトショップ」は、ディスク上のPhotoshopのアプリケーション(「PhotoshopのCS」または何でも)の実際の名前に置き換えられます。
他のヒント
[OK]を、私はいじくりを有しており、上記に拡大半のAppleScriptハーフシェルスクリプトを思い付いてきました。私は、任意のコメントを歓迎:)
これは(ルートフォルダから検索する)、部分的なファイル名(スペースで区切られた)の入力を求める現在のフォルダの場所を取得するための最上位のFinderウインドウを見つけることによって動作しますが、部分(検索クエリに星を追加するには、シェルを使用しています代わりにフルのファイル名)が、我々はすでにFinderで開いている「ルート」フォルダからfindコマンドを実行します。見つかったファイルはPhotoshopで開かれます。
tell application "Finder"
try
activate
beep 1
display dialog "Enter your image search:" default answer ""
set dialogInfo to result
set imgquery to text returned of dialogInfo
set frontWin to folder of front window as string
set frontWinPath to (get POSIX path of frontWin)
tell application "Terminal"
activate
set starredImgQuery to do shell script "echo " & quoted form of imgquery & " | sed 's/ /\\* */g'"
set starredImgQuery to "*" & starredImgQuery & "*"
do shell script "cd \"" & frontWinPath & "\";for f in " & starredImgQuery & "; do find . -name \"$f\" -exec open -a \"/Applications/Adobe Photoshop CS4/Adobe Photoshop CS4.app\" {} \\;; done"
end tell
tell application "Terminal" to quit
on error error_message
beep
display dialog error_message buttons ¬
{"OK"} default button 1
end try
end tell
シェルコマンドは素晴らしいです!!
うーん、コードは今私のために動作しません!
パニックや「スポットライトブール検索」の周りを検索 - とEasyFindを発見!デボン技術により、フリーウェア: http://www.devon-technologies.com/products/freeware/index。 HTML の
より高速で動作するようにして簡単に適応するために、それは、上記のように、ブール検索のために働く、ルートフォルダを見つけて、ブール検索:6504または6505または8902または4501