web-dev-qa-db-ja.com

Automatorは変数の値またはステップの結果に基づいて分岐できますか?

現在、保存されているいくつかのスプレッドシートを取得して、さまざまな個人に電子メールで送信するAutomatorワークフローを編集しています。スプレッドシートはWindowsサーバーに保存され、この説明に関係のない別のプロセスによって作成されます。ただし、作成したら、ユーザーがこのアクションをクリックして、メールメッセージ(通常は8つ)をポップアップして送信できるようにします。

Macがサーバーに接続している限り、これはすべて正常に機能します。サーバー接続が存在しない場合、ファイルが存在しないため、問題はサイレントに失敗します。

ユーティリティ、その他、ファインダー(およびその他すべて)に追加できるすべての可能な手順を調べましたが、たとえば、次のようなことを行う方法が見つかりません。 '変数ServerConnectedがnullでない場合は、このステップをスキップしてください'。

Automatorアクションでサーバーに自動的に接続できますが、すでに接続されている場合は別の接続が発生するため、後で問題が発生します...アンマウントすると最初の接続がアンマウントされ、サーバーが表示されなくなりますが、/のパスが表示されなくなります。ボリュームはまだそこにあります...それは私が降りたくない道です。

それで、変数を使用して条件が真か偽かをチェックし、それに基づいて手順をスキップする方法はありますか?または、タスクを実行する他の方法はありますか?私はAutomatorをあまり使用していません。昔ながらの方法でスクリプトを作成する方が快適なので、.workflowファイルを開いてパラメーターを手動で編集することもできます。この特定のワークフローを編集しているのは、他の誰かによって開発されたものであり、サーバー接続の不具合を除いて、一般的には実際にうまく機能しているからです。

2
atroon

それを3つのオートマトンアプリに分割し、シェルスクリプトで分岐することができます。接続チェックまで通常のワークフローを実行してから、オートマトンアクションDo Shell Scriptを使用します。

そのスクリプトは次のようになります。

#! /bin/bash

if
        <your command to test connection>
then
        open /pathto/automator_connected.app
else
        open /pathto/automator_not_connected.app
fi

automator_connected.appには、残りのautomatorワークフローが含まれます

automator_not_connected.appには、サーバー接続が失敗した場合に実行するアクションが含まれます

2
ridogi