ファイルを受け取り、選択項目を順に処理して、各項目を指定したアプリで開くFinderクイックアクションを作成します。このガイドでは、使い捨てのテキストファイルとテキストエディットを使い、入力の欠落、重複するファイル名、誤った変数の接続を確認します。
指定したアプリで開けるファイルを準備する
ここで行うのは、Finderで既存のローカルファイルを複数選択し、それぞれを同じアプリに渡すことです。まず、テスト用のプレーンテキスト書類を2つ作成します。Blue note.txtにはBlue sample、Green note.txtにはGreen sampleを入力します。これらを「Finder Opening Test」という名前の新しいデスクトップフォルダに保存します。そのフォルダがすでに存在する場合は別の名前にし、後の例もそれに合わせて変更してください。
ショートカットを作る前に、各サンプルを手動で開きます。FinderでControlキーを押しながらクリックし、「このアプリケーションで開く」を選んで「テキストエディット」を選択します。これで、目的のアプリが入力ファイルを扱えることを確認できます。Appleは、特定のアプリでファイルを開く方法として、この方法と、ファイルをアプリのアイコンにドラッグする方法を案内しています。Macでファイルを開くアプリを選択する。
別の作業に応用する場合は、インストール済みのアプリと、そのアプリが対応する形式の使い捨てファイルに置き換えてください。アプリを選んでも、選択したすべての形式をそのアプリで読み込めるとは限りません。最初のテストには一般的なローカル書類を使います。フォルダや書類パッケージは別の扱いが必要です。
Finderクイックアクションを作成する
ファイル入力と選択項目がない場合の応答を設定する
「ショートカット」で新しいショートカットを作成し、「選択したテキストをテキストエディットで開く」という名前を付けます。Appleの作成ガイドでは、アクションライブラリからアクションを追加し、そのパラメータを設定する方法が説明されています。Macでカスタムショートカットを作成する。
ショートカットの「詳細」を開き、「クイックアクションとして使用」を有効にして、利用可能な場所として「Finder」を選びます。AppleはFinderとの連携について説明しており、「Finder」を選ぶと、ショートカットで許可する入力にファイルやフォルダを追加する必要がある場合があると案内しています。Macで作業中にショートカットを実行する。
ワークフローの最上部にある入力タイプをクリックします。広範な選択を解除し、「ファイル」を有効にします。Appleによると、このタイプには書類、画像、PDFなどのファイルが含まれます。フォルダには別の入力タイプがあります。このワークフローではファイルのみを受け付けます。Macの「ショートカット」で入力タイプを理解する。
入力がない場合の動作を「停止して応答」に設定し、メッセージに「Finderでサンプルファイルを選択してから、このクイックアクションを実行してください。」と入力します。これで入力がない状態で実行された場合にも、理由が分かります。Appleは、Dockなど一部の起動場所では初期入力が渡されないことを説明し、この応答オプションを案内しています。Macで別のアプリから実行したときのショートカット入力を制限する。
選択した各ファイルを開くアクションに接続する
「各項目を繰り返す」を追加し、リストに「ショートカットの入力」を設定します。ループ内に「ファイルを開く」を追加します。ファイルのパラメータを「繰り返し項目」に設定し、アプリのパラメータでは「デフォルトのアプリ」のままにせず、「テキストエディット」を選びます。以下はワークフローの図であり、実行可能なコードではありません。
Finderからファイルを受け取る
入力がない場合: 停止して応答
ショートカットの入力の各項目を繰り返す
繰り返し項目をテキストエディットで開く
繰り返しを終了
重要なのは「繰り返し項目」の接続です。Appleの説明によると、「各項目を繰り返す」はリストを受け取り、囲まれたアクションを項目ごとに1回実行します。「繰り返し項目」には各反復で現在処理中の項目が入ります。ループ内の「ファイルを開く」アクションに「ショートカットの入力」全体を渡すと、1回の反復につき1ファイルを処理する設計になりません。Macの「ショートカット」で「繰り返す」アクションを使う。
実行する前に、Macで「ファイルを開く」アクションの情報を確認します。アクションのアイコンをControlキーを押しながらクリックし、「情報を表示」を選びます。Appleは、アクションの説明、受け付ける入力、出力を調べる方法としてこれを案内しています。ファイルを開くアクションを選んでいることと、設定で指定したアプリを選択できることを確認してください。Macの「ショートカット」でアクションリストを操作する。
ワークフローを編集するときは、次の対応関係を保ちます。
| 段階 | ここで使う値 | 保持する内容 |
|---|---|---|
| Finder入力 | 選択したファイル項目 | ファイル項目のままにします。 |
| 「各項目を繰り返す」の入力 | 「ショートカットの入力」リスト | 渡されたリストを処理します。 |
| 「繰り返し項目」 | 選択したファイル1つ | この変数を「ファイルを開く」に接続します。 |
| 開いた後 | このワークフローには後続のアクションなし | 結果に編集済みの書類内容が含まれるとは限りません。 |
Appleによると、繰り返しループでは、囲まれたアクションの出力がまとめられて全体の結果になります。そのため、ループの結果は各アクションの出力仕様によって決まります。このショートカットで必要なのはファイルを開く操作だけなので、「繰り返しを終了」で終わります。その結果を新しいファイルリストとして使うことはありません。「繰り返す」アクションのデータフロー。
選択項目を増やす前に少数のファイルでテストする
Finderで「Finder Opening Test」を開き、サンプル書類を両方選択してから、選択項目の1つをControlキーを押しながらクリックします。「クイックアクション」を選び、続けて「選択したテキストをテキストエディットで開く」を選択します。Appleは、コンテキストメニューやFinderのプレビュー領域からショートカットを実行する方法を案内しています。ショートカットが表示されない場合は、Finderで利用可能になっているか、Finderの拡張機能が有効かを確認してください。クイックアクションメニューからショートカットを実行する。
テキストエディットが起動したかどうかだけでなく、内容も確認します。「Blue sample」と「Green sample」の両方を見つけられるはずです。このワークフローは、選択した各ファイルを開く操作を1回ずつ行います。ウインドウの配置、タブのグループ化、書類の順序は設定しません。
選択の問題とアプリの問題を切り分けるには、次の小さなテスト表を使います。以下は提案する確認項目であり、テスト結果を報告するものではありません。
| テスト | 確認する内容 |
|---|---|
Blue note.txtだけを選択する |
青色のサンプルが開く。 |
| サンプル書類を両方選択する | 2つの異なる内容を確認できる。 |
| 入力を渡さずに起動する | 設定した選択を促すメッセージが表示される。 |
| 別々のフォルダにある同名ファイルを2つ選択する | それぞれの内容を区別できる。 |
最後の確認では、テスト用フォルダ内にサブフォルダを2つ作成します。それぞれにSample.txtという名前のプレーンテキスト書類を保存し、内容を「First folder sample」と「Second folder sample」にします。テスト用フォルダに限定したFinder検索でこれら2つのファイルを同時に選択し、クイックアクションを実行します。
この確認が役立つのは、提案したワークフローが選択したファイル項目をそのまま渡すためです。ファイル名だけを取り出してパスを再構成するステップはありません。応用するときも、この直接の接続を保ってください。ファイル名だけでは、この2つの書類を区別できません。
ファイルの存在と名前の重複に関する制限を理解する
ファイルを開く操作を行う時点で、そのファイルが存在している必要があります。このショートカットにはファイルの作成や復旧を行うステップはありません。サンプルを移動または削除した場合は、現在の場所からもう一度選択して再試行してください。古い選択を補うためだけに固定パスを追加するのは避けてください。
このワークフローには、コピー、名前変更、移動、保存のアクションもありません。そのため、保存先の命名ルールは作成されません。別々のフォルダに既存のSample.txtが2つあっても、このワークフローでは新しい出力名を決める必要はありません。後で保存や書き出しのステップを追加する場合は、保存先と、既存のファイル名がある場合の処理を別途決めてください。
書類を開けたことだけでは、その後の編集や書き出しが成功したとは判断できません。最初のバージョンは使い捨てのサンプルを開く処理に限定し、追加する操作はそれぞれの入力、出力、既存ファイルの扱いに応じて評価してください。
Terminalで入力の問題を切り分ける
Finderからの実行で状況が分からない場合は、明示的にファイルを入力して同じショートカットをテストします。Appleは、shortcuts runコマンドと、ファイルパスを渡すための-iオプションを案内しています。また、パスのテキストをパイプで渡す方法とは異なり、後者ではファイルパスではなくテキストが入力されると説明しています。コマンドラインからショートカットを実行する。
ショートカットと、上記のデスクトップ上の2つのサンプルを作成した後、Terminalで次の完全なシェル例を実行します。Shortcutsを呼び出す前に両方のパスが存在するかを確認し、スペースを含むパスを保つためにそれぞれを引用符で囲んでいます。シェル構文は確認済みですが、この調査環境ではmacOSのコマンドもグラフィカルなワークフローも実行していません。
/bin/bash <<'SCRIPT'
set -eu
sample_dir="$HOME/Desktop/Finder Opening Test"
first="$sample_dir/Blue note.txt"
second="$sample_dir/Green note.txt"
for file in "$first" "$second"; do
if [ ! -f "$file" ]; then
printf 'Missing sample file: %s\n' "$file" >&2
exit 1
fi
done
/usr/bin/shortcuts run "Open Selected Text in TextEdit" \
-i "$first" "$second"
SCRIPT
この例では明示した2つのサンプルパスのみを使い、現在のFinder選択項目は検出しません。Appleによると、ショートカットの実行が成功した場合の終了ステータスは0、エラーの場合は1です。それでも、意図した結果が画面に表示されたことを確認するため、サンプル書類を確認してください。ショートカットコマンドの動作。
結果が異なり始める最初の箇所を調べる
ショートカットは表示されるのに入力を受け取らない場合は、受け付ける入力タイプが「ファイル」になっていることを確認し、Finderでサンプルファイルを選択してからもう一度実行します。書類が1つしか開かない場合は、ループのリスト接続と、「ファイルを開く」の「繰り返し項目」接続を確認します。
ワークフローに渡される入力を調べるには、ループの前に一時的に「クイックルック」を配置し、「ショートカットの入力」に明示的に接続します。繰り返しループも引き続き「ショートカットの入力」に明示的に接続してください。Appleは、アクション間に「クイックルック」を挿入して渡される内容を確認する方法を案内しています。サンプルを確認したら、診断用のアクションを削除します。Macの「ショートカット」でアクションをテストする。
別のアプリが開く場合は、「ファイルを開く」のアプリパラメータをもう一度確認します。テキストエディットでサンプルを手動で開けない場合は、まず書類側の問題を解決してください。Appleは、アプリがファイル形式を認識できないために開けない場合があると説明しています。Macでファイルを開くアプリを選択する。
Finderから使い捨てのサンプルを両方開けたら、対応するローカルファイルにも同じ手順を使えます。書類を選択し、クイックアクションを実行して、指定したアプリで内容を確認します。応用するときも、ファイル項目と、1項目ずつ処理するループ接続を保ってください。
参考資料
- Macでカスタムショートカットを作成する — Appleサポート。
- Macで作業中にショートカットを実行する — Appleサポート。
- Macの「ショートカット」で入力タイプを理解する — Appleサポート。
- Macで別のアプリから実行したときのショートカット入力を制限する — Appleサポート。
- Macの「ショートカット」で「繰り返す」アクションを使う — Appleサポート。
- Macの「ショートカット」でアクションリストを操作する — Appleサポート。
- Macでファイルを開くアプリを選択する — Appleサポート。
- コマンドラインからショートカットを実行する — Appleサポート。
- Macの「ショートカット」でアクションをテストする — Appleサポート。