Variables (JA)
2.3 変数
変数はVarとEvalコマンドで作成することができる。変数は大文字と小文字を区別する名前と値を持つ。Var/Evalコマンドを含む)動的な内容を必要とするあらゆる場所で、変数を参照することができます。T-Plan Robot Enterpriseのプリプロセッサは、コマンド行を解析する前に{%26lt;var_name>}を%26lt;var_name%26gt;変数の値に置き換えます。
典型的な例
Var PATH=/tmp
Typeline "mkdir -p {PATH}; cd {PATH}"
Var 1="test"'のような、数字だけの変数名は避けてください。これらの変数はプロシージャー・パラメーター用に予約されており、プロシージャーを実行すると警告なしに書き換えられてしまいます。
変数が定義されていない場合、置換は行われない。以下の例では、変数定義がコメントアウトされているため、'cd /tmp'よりも'cd {PATH}'とタイプされる:
# var PATH=/tmp
Typeline "cd {PATH}"
プリプロセッサはネストされた変数参照をサポートする。この機能は、マッチの座標がSEARCH_X%26lt;number%26gt;として保存される画像比較メソッド'search'の複数のマッチを処理するために必要であり、ループの中で変数名を動的に生成する必要がある。次の例はそのような使い方を示しています。リモートデスクトップからアイコンを検索し、表示されたアイコンをクリックするとします:
Compareto "search.png" method=search
for(i=1; {i}<{_SEARCH_MATCH_COUNT}+1; i={i}+1) {
# ネストされた変数は、接尾辞とインデックスから変数名を構成する
Mouse click to=x:{_SEARCH_X{i}},y:{SEARCH_Y{i}}
}
T-Plan Robot Enterprise は、オブジェクト指向プログラミング(OOP)におけるメンバクラスとローカル変数に似たグローバル 変数とローカル 変数の概念もサポートしています。変数のタイプは明示的に宣言されませんが、コードのどこで作成されるかに依存します:
スクリプト本体に作成された変数はグローバル変数とみなされ、定義した時点からスクリプトの実行が終了するまでアクセス可能です。
構造化されたコードブロック(プロシージャ、if/else、for文)内で作成された変数はローカル変数とみなされ、そのコードブロック内(ネストされたブロックを含む)でしか使用できません。
ローカル変数はグローバル変数を上書きすることはできません。つまり、コードブロック内でVarコマンドやEvalコマンドを実行し、その変数名がすでに存在するグローバル変数と一致した場合、同じ名前のローカル変数を定義するよりも、むしろグローバル変数を変更する方がよいということです。次の例は、その原則を示している。
# グローバル変数
Var GLOBAL=global
If (1 == 1) {
# ローカル変数を作成し、GLOBALの値を'modified'に変更する。
Var LOCAL=local GLOBAL=modified
If (1 > 0) {
Var LOCAL2=local2
# ここで、GLOBAL、LOCAL、LOCAL2 が利用可能である。
# コマンドは "GLOBAL=modified, LOCAL=local, LOCAL2=local2" とタイプする。
Type "GLOBAL={GLOBAL}, LOCAL={LOCAL}, LOCAL2={LOCAL2}"
}
# ここで、GLOBALとLOCALは利用可能であり、LOCAL2はもう存在しない。
# コマンドは "GLOBAL=変更済み, LOCAL=local, LOCAL2={LOCAL2}" とタイプする.
Type "GLOBAL={GLOBAL}, LOCAL={LOCAL}, LOCAL2={LOCAL2}"
}
# ここで、GLOBALは利用可能であり、LOCALとLOCAL2はもう存在しない。
# コマンドは "GLOBAL=modified, LOCAL={LOCAL}, LOCAL2={LOCAL2}" とタイプする.
Type "GLOBAL={GLOBAL}, LOCAL={LOCAL}, LOCAL2={LOCAL2}"
同じルールがIncludeとRunコマンドでロードされたスクリプト内で定義された変数にも同じルールが適用されます。T-Plan Robot Enterpriseは、スクリプトから参照できる定義済み(明示的とも呼ばれる)変数のセットを提供します。これらの変数には、実行開始日、デスクトップサーバーのホスト名、実行されたスクリプトの名前など、様々な有用なデータが含まれています。定義済み変数の完全なリストについてはVarコマンド仕様を参照してください。変数値は、CLI を使用してスクリプト実行時にオーバーライドできます。で指定されている v/-variable パラメータを参照してください。CLI Optionsドキュメントを参照してください。これにより、特定のスクリプト実行をパラメトリック化したり、スクリプトコード内の機密情報(ユーザー名、パスワード...)の漏洩を回避したりすることができます。CLIで設定すると、変数は「読み取り専用」になり、スクリプト実行中ずっとその値が固定されます。スクリプト内で実行されるこの変数を変更する Var/Eval コマンドはすべて無視され、その値には影響しません。これは、明示的な(定義済みの)変数を含む、あらゆる変数に適用される。