本記事では、アクション「環境変数」の活用方法について紹介します。
「Path」「TEMP」「TMP」のような環境変数は、日常的に追加・削除したり、変更したりすることはほぼ無いかと存じます。
したがって、アクション「環境変数」は、あまり出番のないアクションのように見えます。
一方で、AutoMateでしか使用しない環境変数を作成すると、以下のようなことが可能になります。
(以下では、環境変数「AMEnvVar1」を作成したものとします)
1. 変数定義や設定ファイルからの読込を行うことなく、そのまま値参照が可能
設定値をファイルから読み込む場合であれば、「変数の作成」を経て「ファイルからの読込」を実施するか、データセット化する必要がありましたが、環境変数であればそのどちらも行うことなく「%AMEnvVar1%」を指定するだけで値参照が可能です。
2. AutoMateのタスクから上書き可能
AutoMateの「定数」は読み取り専用であり、AutoMateからは上書きできませんが、「環境変数」であればAutoMateのアクションで上書き可能です。
そのため、タスク終了時に値を更新するといった使用方法も可能です。
なお、環境変数アクションを使用するにあたっての注意点は以下です。
A. 「Path」「TEMP」などの既存の環境変数は、必要が無い限りは操作しない
よく分からないまま既存の環境変数を編集したり、削除したりすると、PCが正常に動作しなくなる可能性があります。
B. 環境変数はアプリ・プロセスを再起動しないと変更した値が反映されない
環境変数は、アプリの起動時に読み込むものであり、参照が指定された際に都度現行の値を参照して更新されるものではありません。
アプリ起動時に設定されていた環境変数の値が、アプリが終了するまでの間保持されます。
したがって、タスクビルダーから変更した後の値を読み込むためには、一度タスクビルダーを開きなおさない限り値が更新されません。
同様に、手動実行・トリガー実行されたタスクにおいても、1度のタスクで何度環境変数を変更しても、その回のタスクでは起動時に設定されていた値以外は参照しません。
(タスク起動時に「AMEnvVar1」の値が「AutoMate1」だった場合、そのタスク内で何度値を更新しても、その回のタスクで参照される「AMEnvVar1」の値は「AutoMate1」以外になりません)
以下、一例です。
<AMVARIABLE NAME="var_EnvVarValue" VALUE="" />
<!--環境変数に格納する値を指定する-->
<AMSHOWDIALOG ACTIVITY="input" MESSAGE="環境変数「AMEnvVar1」に設定する値を入力してください" RESULTVARIABLE="var_EnvVarValue" />
<!--環境変数「AMEnvVar1」を指定された値に更新する。ない場合は新たに作成される。-->
<AMENVVARS ACTIVITY="set" AM_ONERROR="CONTINUE" NAME="AMEnvVar1" TYPE="user" VALUE="%var_EnvVarValue%" />
<!--変数「AMEnvVar1」が起動時点で存在していなければ、新しく作成し、次回から読み込まれる旨を表示-->
<AMIF EXPRESSION="%IsDefined("AMEnvVar1")% = false" />
<AMSHOWDIALOG COUNTDOWNDELAY="5">環境変数「AMEnvVar1」は存在しない為、今回新たに作成しました。
なお、タスクビルダーから実行している場合は、設定反映のため、タスクビルダーを再起動してください。</AMSHOWDIALOG>
<AMELSE />
<AMSHOWDIALOG COUNTDOWNDELAY="5">環境変数「AMEnvVar1」から現在読み込んでいる値は「%AMEnvVar1%」です。
今回設定した値「%var_EnvVarValue%」は次回より反映されます。</AMSHOWDIALOG>
<AMIF ACTIVITY="end" />