hibitekitou
ChatGPTはお利口です。
mac |2024-06-01
あるサーバーの共有フォルダにて、なぜかFInderで新規フォルダを作成したときそのフォルダの名前を変更できないことがあります。原因がわからないのだけど、リネームができないのはFinderからだけみたいで、ターミナルから mv 名称未設定フォルダ newFolderName は通ります。とはいえ、いちいちその階層にターミナルで移動してコマンド実行は面倒なので、ChatGPTでいい方法ない?って聞いてみたら教えてくれました。Automatorを使います。
新規書類をクイックアクションにした上で、以下の画像の設定にしています。
今回はフォルダのリネームが問題なのでワークフローが受け取る現在の項目をフォルダに、検索対象はFinderにした上で、「シェルスクリプトを実行」を追加して、入力の引き渡し方法を「引数として」にします。でスクリプト部分を以下のように記述する。
for f in "$@" do open -a "Finder" "$f" /usr/bin/osascript -e 'tell application "Finder" to set name of item (POSIX file "'$f'") to text returned of (display dialog "Enter new name:" default answer "")' done
ChatGPTからの指示そのままでほぼ完成します。素晴らしいですね。
出来上がったクイックアクションを実行して開くリネームのためのパネルでキャンセルを選んだ時の時の処理を書いてないのが問題ではありますが。ってかこれ、AppleScriptじゃんw キャンセルが押されるとエラーが返るからそれに対して何も処理をしないって処理を書いておかねばならんですかね。あらためて、どうにかならん?って聞いてみたらシェルスクリプト部分を以下のように変更しろと言われました。
if [ "$#" -gt 0 ]; then f="$1" new_name=$(osascript -e 'try tell application "Finder" set item_name to text returned of (display dialog "Enter new name:" default answer "") end tell on error return "cancelled" end try') if [ "$new_name" = "cancelled" ]; then exit 0 fi dir=$(dirname "$f") mv "$f" "$dir/$new_name" fi
無事動作してますね。素敵です。
コメント ( 0 )|Trackback ( )
コメント |
コメントはありません。 |
![]() |
コメントを投稿する |
![]() |
ブログ作成者から承認されるまでコメントは反映されません |