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

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

新規登録して質問してみよう
ただいま回答率
85.47%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Automator

Automatorは、作業を自動化するワークフロー構築ソフトウェア。Macに標準で搭載されています。ドラッグ&ドロップ操作で自動化レシピを作成。任意のショートカットキーで実行することが可能です。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

2回答

3306閲覧

特定のフォルダにファイルを追加したときに、ファイルにフォルダ名を自動で付与する

vaniy_

総合スコア8

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Automator

Automatorは、作業を自動化するワークフロー構築ソフトウェア。Macに標準で搭載されています。ドラッグ&ドロップ操作で自動化レシピを作成。任意のショートカットキーで実行することが可能です。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

0クリップ

投稿2021/04/15 01:26

フォルダにファイルを追加した時、そのファイルにフォルダ名を自動付与する

仮に、Aという名前のフォルダを用意したとします。
Aフォルダに、2021_0415.pngを入れたときに
A_2021_0415.pngとなるように出来たらな良いな…と思っています。

方法をググってみてもリネームは出てくるのですがこのような処理は出てこず。
当方macを使用しているのでAutomatorで出来たりするのかな?と思いつつも、お恥ずかしながら頭が足りず。。

皆様のお知恵をお貸しいただけたらと思います。
よろしくお願いいたします。

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

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

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

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

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

etherbeg

2021/04/22 23:26

一時、質問の削除依頼をされていたようですが、まだ回答を望まれていますか? 不要でしたらスルーしてください。
vaniy_

2021/04/24 00:04

etherbeg 様 質問方法が悪かったかな、と思い削除依頼をしておりました。。 ご回答いただけると助かります!お手隙の時に是非よろしくお願いいたします。
guest

回答2

0

ベストアンサー

Automator でフォルダアクションを作成することで可能です。
ただし Automator の既存のアクションを組み合わせただけで作成すると、

フォルダにファイルを追加→ファイル名が変更される→新しいファイルが追加されたと認識される→ファイル名が変更される→新しいファイルが追加されたと認識される→…

と永遠にリネームし続ける事が判明…。

仕方ないので、Automator らしさには欠けますが、スクリプト言語を使ってすべてを行い、フォルダ名が付加された後は条件判断を使って処理の繰り返しから逃げるようにします。
使用するスクリプト言語は AppleScript やシェルスクリプト、JavaScript、Ruby などから自由に選ぶことができますが、ここでは Python を使用しました。


① Automator を起動します。

② ファイル選択ウインドウで、「新規書類」をクリックします。もしくはメニューバーから「ファイル」>「新規」を選択します。

③ 書類の種類に「フォルダアクション」を選択して、「選択」をクリックします。

「フォルダアクション」を選択

④「”フォルダアクション”は、次の場所に追加されたファイルやフォルダを受け取る」の「フォルダを選択」ポップアップメニューから「その他...」を選択し、フォルダアクションを設定したいフォルダを選択して、「選択」をクリックします。

フォルダを選択

⑤ アクションの「ライブラリ」から「ユーティリティ」を選択し、表示されたアクションの中から「シェルスクリプトを実行」をダブルクリックします。もしくは右側のワークフロー欄にドラッグ&ドロップします。

シェルスクリプトを実行」をダブルクリック

⑥「シェル」ポップアップメニューから、「/usr/bin/python」を選択します。「入力の引き渡し方法」ポップアップメニューから、「引数として」を選択します。

pythonを選択

⑦ コマンドフィールドに入力されている Python スクリプトを、次のスクリプトに置き換えます。

Python

1import os 2import sys 3 4for f in sys.argv[1:]: 5 delimiter = "_" 6 file_name = os.path.basename(f) 7 file_path = os.path.dirname(f) 8 dir_name = os.path.basename(os.path.dirname(f)) 9 if not file_name.startswith(dir_name + delimiter): 10 new_file_name = dir_name + delimiter + file_name 11 new_file_path = os.path.join(file_path, new_file_name) 12 os.rename(f, new_file_path)

⑧ メニューバーから「ファイル」>「保存...」を選択し、適当な名前を入力して「保存」をクリックします。

ファイルを保存

⑨ Automator を終了します。


実際に意図する動作をするか試してみて、意図した動作をしない場合はコメントで教えてください。

投稿2021/04/24 22:51

etherbeg

総合スコア1195

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

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

vaniy_

2021/04/28 02:01

etherbeg 様 大変詳しくお教えいただきありがとうございます!!!! 早速やってみます!! ありがとうございます!!
guest

0

MacにはFolder Actionという仕組みがあり、特定のフォルダにファイルを追加/削除/移動させた場合に指定したAppleScriptを実行できるようになっています。

この場合だと、指定のフォルダにファイルが「追加」された場合に一度Scriptが実行されるように設定すれば大丈夫です。

投稿2021/05/25 09:04

Piyomaru

総合スコア75

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

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

vaniy_

2021/06/09 07:58

Piyomaru 様 ご回答いただきありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問