🍰
Macで任意のフォルダにテキストファイルを作成するショートカット
macOSのショートカットアプリを使って、ユーザーが入力したテキストを任意のフォルダにテキストファイルで保存するクイックアクションを作る方法を紹介します。
作成したショートカット
- このショートカットを「クイックアクションとして使用」と設定します。
- そして、テキストファイルを作成したいフォルダを右クリック。
- クイックアクションのメニューに表示される本ショートカットを実行する。
という流れです。
ショートカットの解説
1. フォルダを指定する
- クイックアクションでフォルダを取得します
- 取得したフォルダは 変数 targetFolder に入れます
2. ユーザー入力を受け取る
-「プロンプトでテキストを要求」を使ってテキストを取得
- 取得したテキストは 変数 fileContent に入れます
3. 変数をリストにまとめる
- targetFolder と fileContent をリストに入れます。シェルスクリプトに対しては1つの引数しか渡せないので、リストにすることで1つの引数として渡すことができます。
4. リストを引数にシェルスクリプトを実行
- シェルスクリプトではリストの順番通りに変数を取り出します
- タイムスタンプでファイル名を付けて作成、取得したテキストを書き込みます
シェルスクリプト
# 引数1: フォルダパス
folder="$1"
# 引数2: 書き込むテキスト
content="$2"
# ファイル名: YYYY-MM-DD-HHMMSS.txt 形式
filename="$(date +%Y-%m-%d-%H%M%S).txt"
filepath="$folder/$filename"
# フォルダ作成(存在しない場合)
mkdir -p "$folder"
# テキストを書き込む
echo "$content" > "$filepath"
ポイント
- フォルダパスとユーザー入力を1つの引数にまとめることで、Shortcutsの「引数は1つしか使えない」制約を回避
- タイムスタンプ付きのファイル名にすることで、同じ日に複数のファイルを作成しても上書きされない
- 長文・改行・日本語も安全に書き込める
- 必要に応じて作成後のファイルパスを次のアクションに渡すことも可能
Discussion