Skip to main content
Skip table of contents

Boolean Expressions (JA)

2.7 ブール式

論理式はif/elseやforのような構文を容易にします。以下の演算子がサポートされています:

  • 括弧 '(' および ')'

  • 大'>'、大 '>='、小 '<'、小'<='。これらの演算子は数値引数を必要とする。

  • '==' と等しく、'!=' または'<>'と等しくない。引数の少なくとも1つが数値でない場合(二重引用符で囲まれた文字列)、プレーンな文字列比較が実行される。例

    • 'yes == no' の結果は偽となる。

    • 'yes != no'の結果は真になります。

    • どちらの引数も数値に変換でき、数値が等しいので、'1.0 == 1' の結果は真となる。

  • 演算子 '&&' と '||' - 論理的な "and" と "or"。これらの演算子はブール引数、つまり他の式を必要とする。例

    • 式 '1 > 0 || yes != no' は、2つの式のどちらかが真であるため、真となる。

    • 式 '1 > 0 && yes != no' は、一方の式が偽なので偽となる。

バージョン2.2以降では、変数の存在や文字列の比較を行う演算子もサポートされています:

  • 単項演算子'exists <variableName>' は変数の存在をテストする。例

    • 'exists _REPORT_FILE' は、スクリプトがReportコマンドでレポートを作成する場合に真になります。

  • 演算子 'contains' は、最初の文字列引数がもう一方の引数を含むかどうかをテストします(大文字と小文字が区別されます)。例

    • '"{_MACHINE}" contains "sourceforge"' は、接続されているVNCサーバー名に 'sourceforge' が含まれている場合に真になります。

  • 演算子 'hasphrase' は、最初の文字列がもう一方の文字列を含むかどうかを検証します(7.2.2以降)。”contains” と似ていますが、改行や不要なスペースに寛容です。これにより、OCRで認識されたテキストを画面上で簡単に評価することができます。例

    • '"{_TOCR_TEXT}" hasphrase "Hello world I am here"' は、複数行に分割されているか、複数のスペースが含まれているかに関係なく、先に実行された OCR の結果のテキストに指定されたフレーズが含まれていれば真になります。

  • 演算子 'startswith' は、最初の文字列引数がもう一方の引数で始まっているかどうかをテストします(大文字小文字を区別します)。例

    • '"{_DISPLAY}" startswith "localhost"' は、接続されているVNCデスクトップ名が ‘localhost’ で始まる場合、例えば ‘localhost:1’ のように真になります。

  • 演算子 'endswith' は、最初の文字列引数が他の文字列引数で終わっているかどうかをテストします(大文字と小文字を区別します)。例

    • '"{_DISPLAY}" endswith ":3"' は、接続されている VNC サーバーがポート 5903 で動作している場合 (これは通常、デスクトップ名の ':3' ディスプレイ番号で示されます) に真になります。

  • オペレータ 'matches' は、最初の文字列引数をjava.util.regex.Pattern準拠の正規表現と比較します。例

    • '"{_DATE}" matches "201008[12][1-5]" は、現在の日付が2010年8月11日から15日の間、あるいは21日から25日の間にある場合に真

ブール式は、次の例に示すように、if/elseとfor構文でのみ使用されます。また、ブール式はEvalコマンドに渡すこともできます。

# リモートデスクトップ上の画像を探す
Compareto "pattern.png" method=search

# 画像が見つからなかった場合は終了します、
if ({_EXIT_CODE} > 0) {
Exit 1
}

詳細は If/Else Statement および For Statement の章をお読みください。

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.