質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
AppleScript

AppleScriptは、アップル社が開発しているMac OS用のスクリプト言語。AppleScript本体に限らず、同じ言語で多くのAppleScript対応アプリケーションを操縦することが可能です。 自然言語(英語)に近い構文を持ちます。

Q&A

解決済

1回答

485閲覧

【AppleScript】Finderで選択しているフォルダと別フォルダで同名があったらその名前をアラートで出したい

nekko_neko

総合スコア21

AppleScript

AppleScriptは、アップル社が開発しているMac OS用のスクリプト言語。AppleScript本体に限らず、同じ言語で多くのAppleScript対応アプリケーションを操縦することが可能です。 自然言語(英語)に近い構文を持ちます。

0グッド

0クリップ

投稿2022/06/04 08:41

Finder上で一つ、もしくは複数のフォルダを選択しているとします。
そして別のフォルダ(fdir)に同じ名前のフォルダがあるかどうか存在確認し、trueかfalseかで条件分岐したいです。

別フォルダに同じ名前のフォルダがあったらその名前をアラートで出したいのですが、複数のフォルダを選んでいても返ってくるのは一つだけでした。

tell application "Finder" activate set select_list to selection set fdir to choose folder with prompt "フォルダを選択" repeat with f in select_list set fname_ext to f's name set folEx to get (exists of folder fname_ext) of fdir if folEx = true then display alert fname_ext else display alert "存在していません" end if end repeat end tell

どこがおかしいでしょうか。
AppleScriptは初心者なので分かりづらいかもしれませんが、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/06/04 09:43

> 複数のフォルダを選んでいても返ってくるのは一つだけでした。 macOS Monterey バージョン12.4 で再現確認してみたのですが、 最初に2つのフォルダを選択した状態でスクリプトを実行すると 2回「存在していません」のメッセージが表示されました。 *存在するフォルダを選択したはずなのですが。。 存在するかしないかのチェックが正しく動いていないという問題でしょうか?
nekko_neko

2022/06/04 14:19

大変申し訳ありません。 実はこのスクリプトを会社のパソコン Catalina(バージョンを忘れてしまいました)でやった時、複数のフォルダを選択した状態で実行したのに一つ目の存在するフォルダ名だけメッセージで表示されたんです。 しかし、先ほど家のパソコン Big Sur バージョン 11.2で実行してみたところ、ちゃんと選択したフォルダ名が全て表示されました。 しかしxg63ex2bさんのOSではまた違う挙動なんですね。。 私の家のMacでは一応思い通りの挙動になったのでなんとも言えないのですが・・・ 実際xg63ex2bさんのMacでは存在するかしないかのチェックが正しく動いていないので、それも問題ですし、会社のMacでは存在していた場合にそのフォルダ名が全て表示されないので、それも問題なんです。 ちょっとOSによって挙動が違うというのは想像していなかったので、混乱させてしまいました。 全てのOSでこのスクリプトを動かすにはどうすればよいのでしょうか。 何かが間違っているのだと思います。
退会済みユーザー

退会済みユーザー

2022/06/04 15:19

コメントありがとうございます。 そうだったのですね。 AppleScriptは随分前からあるみたいですので、 成熟していて、バージョンによる違いなんてないのかと思ってしまっていましたが、 かなり違いがありそうですね。。 > | AppleScript version | macOS version | useコマンド記述 | > |:--|:--|:--| > | 2.7 | 10.13, 10.14 , 10.15, 11.0 | use AppleScript version "2.7" | > | 2.8 | 12.0 | use AppleScript version "2.8" | > > https://ja.wikipedia.org/wiki/AppleScript#異なるOSバージョン間の互換性 Wikiを見ると、CatalinaとBig Surは同じAppleScriptのバージョンみたいですが、 Montereyはまた別のバージョンになるみたいですね。 > AppleScriptは中間コードに翻訳されて逐次実行されるが、以下のようなさまざまな保存・実行環境(ランタイム環境)を持つため、実行環境によって動作が微妙に異なり、想定していた通りに動かない場合がある。 > https://ja.wikipedia.org/wiki/AppleScript#さまざまな実行環境 実行環境による違いもあるみたいですが、 どのような形で実行されましたでしょうか? 私はスクリプトエディタから実行していました。 *私自身、AppleScriptを初めて使ってみたのであまりお力になれないかもしれません *AppleScriptの回答をしてくれる人があまりいなそうでしたのでコメントしてしまいました。。ごめんなさい。
nekko_neko

2022/06/05 00:51

ありがとうございます。 私もあまりAppleScriptに詳しくないし調べてもいなくて、こんなに厄介なものだと思っていなかったです(汗)わざわざ調べたりしてくださったりして感謝です。 私自身も、スクリプトエディタに上記のコードを入れて、複数のフォルダを選択した状態で再生マークを押すという感じで実行しています。多分やり方は一緒だと思うんですが・・・ 詳しい人のコメントも待ってみますが、 自力で調べて色々試してみようと思います!
nekko_neko

2022/06/05 23:45

会社のMacで再度同じコードで実行してみたら、家のMacと同じ挙動になりました。何故前回はうまく動作しなかったのかは不明ですが、とりあえず会社のMacで思い通りに動くことが判明したので解決済みにしておきます。 Montereyに関してはまだアップデートの予定はないのでMontereyでの検証は出来ないのですが、違う環境だと動作が異なることがあると教えてくださったxg63ex2bに感謝いたします。 ありがとうございました。
guest

回答1

0

自己解決

何故前に検証した時にうまく動作しなかったのかは不明のままですが、Catalina 10.15.7で上記のコードで正常に動くことがわかりましたので解決にしておきます。
コードがおかしい部分はあるかもしれませんが、とりあえず、です。お騒がせいたしました。

投稿2022/06/05 23:48

nekko_neko

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問