[ヘルプTop] [戻る]スクリプトの制御構文
上級者向けに、スクリプトでちょっとしたプログラムを作成したり、繰り返しの動作や定型業務などをまとめて行うことができます。
代入/四則演算値の可能な変数と、条件分岐、ラベルジャンプ、処理中断用のコマンドを用意しています。 以下のコマンド名は大/小文字の区別はありません。 ※変数や、As/R用の置換マクロは大/小文字の判定をしますので、混同しないようにご注意ください。 変数 対象ファイルの検査 パス文字列操作 文字列操作 ラベルジャンプ動作 条件分岐 繰り返し(選択ファイルの数だけ繰り返す/条件が成立する間は繰り返す) 指定ディレクトリ以下のメニュー表示 UIダイアログの表示 変数
コンピュータ言語における変数のような、値の代入可能な置換マクロが使用できます。
変数宣言(Var)
変数のような使い方ができるようになる、置換マクロの使用を宣言します。
宣言以降で、値の代入可能な置換マクロとして使えるようになります。 【書式】 Var 変数名[=初期値]
Var test = OK Var test1 =「test」が含まれており、意図していないであろう置換が発生しうるため許されません 【名称含有のNG例2】 Var test1 = OK Var test =「test」が含まれており、意図していないであろう置換が発生しうるため許されません 【OK例】 Var test1 = OK Var test2 = これもOK 【ユニークになるような変数宣言の例】 Var $file$ = 任意の置換マクロが作成できます CommandLineOption = $file$ Run=%WINDIR%\notepad.exe 【ユニークにならない場合の失敗例】 Var file = 任意の置換マクロが作成できます CommandLineOption = ?selfile? Run=%WINDIR%\notepad.exe ※?selfile?は選択ファイル名に変換するシステム置換マクロですが、「file」変数宣言により一部の記述が置換され、選択ファイルの置換マクロではなくなっています。 これは、CommandLineOptionに「?sel任意の置換マクロが作成できます?」と展開されてしまう事例です。 配列宣言
変数宣言の延長で、配列を宣言することができます。
やや上級者向けの機能で、後述の繰り返し機能(for/nextやdo/whileなど)と合わせて使われることが多いかと思います。 変数の「識別部分」に加えて半角の[と]で括られた添え字の「数字」で構成されます。 【書式】 Var 変数の識別部分[確保する変数の数] 【例】 Var hoge[10] →hoge[0]~hoge[9]まで10個変数領域を確保 【注意事項】
連想配列宣言
配列に良く似ていますが、数字ではなく文字列を指定します。
一般的にはハッシュとかマップとか呼ばれる機能で、インデックスの作成などに利用される技術ですが、配列以上に上級者向けの機能と言えるでしょう。 変数の「識別部分」に加えて半角の[と]で括られた添え字の「識別するテキスト」で構成されます。 【書式】 Var 変数の識別部分[識別するテキスト] 【例】 Var 田中[一郎] = 21 Var 田中[花子] = 24 【注意事項】
入力ダイアログの入力内容の値を格納
入力ダイアログを表示し、その入力内容を格納します。
キャンセルを押下した時は、空文字を格納します。 メッセージが長すぎる場合は表示が途中で切れます。 入力初期値を省略した場合は、前回の入力内容を覚えますが本体終了時に喪失します。 【書式】 Var 変数名=<入力タイプ>,メッセージ[,入力初期値] 入力タイプ ・Input:フリー入力ダイアログ ・InputFile:ファイル入力ダイアログ(ファイル選択ボタン付き) ・InputDir:フォルダー入力ダイアログ(フォルダー選択ボタン付き) 【例】 var $input1$ = Input,フリー入力ダイアログなので適当に入力してください,初期値は省略できます var $input2$ = InputFile,ファイル入力ダイアログです var $input3$ = InputDir,フォルダー入力ダイアログです,c:\windows 入力系置換マクロの使用例
?any?、?anyfile?、?anydir?などの入力系置換マクロを用いてダイアログ画面から値を代入することができます。
入力ダイアログよりも自由度は高いのですが、メッセージを指定することができません。 入力直後に置換されるため、入力内容のエラーチェックなどを行うことができません。 【例】 Var $初期化時に入力$ = ?any? Var $入力内容をダブルクォーテーションで括る$ = "?any?" Var $hoge$ $hoge$ = ?AnyDir? ?any? ?anyfile? MessageBoxOK=$初期化時に入力$ MessageBoxOK=$入力内容をダブルクォーテーションで括る$ MessageBoxOK=$hoge$ 外部コマンドのリターンコード/エラーコードの取得
外部コマンドを実行し、その戻り値を代入することができます。
※プロセスの生成なので、vbsやwshなどのコマンドを直接扱うことはできません。 スクリプトエンジンのコマンドラインオプションとして指定してください。 ※Execコマンドも同様に使用できますが、Execコマンドは終了を待たないので、必ず259(OSの返す、実行中であるという意味の値)になります。 【例】 Var $終了コード1$ = Call,C:\Test.bat Var $終了コード2$ = Exec,C:\Test.bat MessageBoxOK=$終了コード1$ $終了コード2$ C:\Test.batの内容 ---- echo この例ではEXITを使ってますが、copyコマンドなどのエラーコードも使えます pause EXIT 1 ---- メッセージボックスの戻り値格納
メッセージボックスを表示させ、その押下ボタンごとの戻り値を受け取ることができます。
【書式】 var 変数=MessageBox,メッセージボックスのタイプ(10進数/16進数での数値),メッセージ本文 「MessageBox」は大/小文字を区別せず、「,」区切りで3つ以上の値が記述されていることがメッセージボックスとみなされる条件です。 ※メッセージボックスのタイプは「その他のスクリプトコマンド」に記載されているMessageBoxコマンドを参照ください。 var 変数=MessageBoxOK,メッセージ本文 「MessageBoxOK」は大/小文字を区別せず、「,」区切りで2つ以上の値が記述されていることがメッセージボックスとみなされる条件です。 (戻り値は1しか返しません) var 変数=MessageBoxYN,メッセージ本文 「MessageBoxYN」は大/小文字を区別せず、「,」区切りで2つ以上の値が記述されていることがメッセージボックスとみなされる条件です。 戻り値は6か7しか返しません。また変数への代入の場合は「いいえ」を選択してもスクリプトを終了しません。 ※MessageBoxYNは互換性維持のために残されてるコマンドなので、使用を推奨しません。 【例】 Var $初期化時にメッセージ$ = Messagebox,0x126,三択の例 Var $hoge$ $hoge$=Messagebox,1,メッセージ本文2 MessageBoxOK=$初期化時にメッセージ$ MessageBoxOK=$hoge$ 変数の四則演算代入式の四則演算
代入文で渡された値が、全て半角の数字、ピリオド、演算子、スペースのみで構成されている場合に、数式として認識して計算処理を行います。
数式内には、四則演算と剰余算が行え、演算子として+,-,/,*,%の5種類が使用できます。 また計算式の優先順位を指定する方法として、(,)が使用できます。 なお内部は全てdouble(倍精度浮動小数点型)で計算しているので、数式内に小数を含めることが可能です。 【書式】 変数 = 数式の文字列 ※前処理として、変数や環境変数などの置換、16進数→10進数に変換されます。 ※全て半角の数字、ピリオド、演算子「+,-,/,*,%,(,)」、スペースのみで構成されている場合に、数式として認識されます。 ※数式として不整合がある場合は、文法エラーになります。(暗黙の乗算は使用できません) OK $ans$ =(1/2 + 0.5) * 2 OK $ans$ =(a/b + c) * d(a,b,c,dが変数、bが0でないことが条件) NG $ans$ =)1/2 + 0.5) * 2(括弧の向きがそろってない) NG $ans$ =(1/2 + 0.5) ** 2(掛け算の記号が2こ続いている) NG $ans$ =2(1/2 + 0.5)(暗黙の掛け算記号の省略はできません) ※0による除算(/)、剰余(%)は算術エラーになります。 ※計算結果はprintf関数などで使われる"%f"(桁数が未指定の実数表記)で書式化しています。 有効桁数にはご注意ください。 なお整数の場合は小数点以下の記述を削除、書式化で付与される余分な末尾の0は削除されます。 例)3.0000000→3、1.3010000→1.301 2項式の四則演算
2つの値のみを計算する目的の書式で、前述の「代入式の四則演算」が実装される前に使用されていたもので、互換性のために残されています。
ただ、文字列連結はこちらにしか存在しておりませんので、ご注意ください。 (変数の置換で代用は可能です)
+・・・加算 -・・・減算 *・・・乗算 /・・・除算 %・・・剰余 &・・・文字列連結 【例】 Var $初期値$ = 10 //初期化時に変数同士に代入の例 Var $hoge$ = $初期値$ //変数同士の代入例 $hoge$ = $初期値$ //加算 $hoge$ = + 5 MessageBoxOK=$hoge$ //減算 $hoge$ = - 4 MessageBoxOK=$hoge$ //乗算 $hoge$ = * 10 MessageBoxOK=$hoge$ //除算 $hoge$ = / 2 MessageBoxOK=$hoge$ //剰余 $hoge$ = % 2 MessageBoxOK=$hoge$ //文字列連結サンプル1(スペース、環境変数、置換マクロを埋め込んでいる例) $hoge$ = & = 1 Answer Text %ProgramFiles% ?NowDir? "?any?" MessageBoxOK=$hoge$ //文字列連結サンプル2(リストで選択したファイルを、"で括ってスペース区切りした文字列の作成) var $SelFiles$ for $SelFiles$ = & "?selfile?" next MessageBoxOK=$SelFiles$ 対象ファイルの検査Exist
対象が存在するか調べます。
返される値は、存在する場合は1、存在しない場合は0が格納されます。 【書式】 Var 変数名 = Exist,チェックするファイルパス 【例】 var $Exist$ = Exist,c:\windows IsDirectory
対象がフォルダーか調べます。
返される値は、フォルダーの場合は1、フォルダーでない場合は0が格納されます。 【書式】 Var 変数名 = IsDirectory,チェックするフォルダーのフルパス 【例】 var $IsDirectory$ = IsDirectory,c:\windows IsFile対象がファイルか調べます。返される値は、ファイルの場合は1、ファイルでない場合は0が格納されます。 【書式】 Var 変数名 = IsFile,チェックするファイルのフルパス 【例】 var $IsFile$ = IsFile,c:\windows パス文字列操作GetPath
渡された文字列をフルパスのファイル名とみなし、パスの部分を切り出します。
※末尾の\を検索し、それ以前の文字列を切り出します。 【書式】 変数 = GetPath,フルパス文字列 【例】 var $a$ = GetPath,C:\test.txt 「C:\」を格納 GetName
渡された文字列をフルパスのファイル名とみなし、ファイル名(拡張子を含まない)の部分を切り出します。
※パス分解APIの都合上、文字列が256文字以上の場合は空が返されます。 【書式】 変数 = GetName,フルパス文字列 【例】 var $a$ = GetName,C:\test.txt 「test」を格納 GetExt
渡された文字列をフルパスのファイル名とみなし、拡張子の部分を切り出します。
※パス分解APIの都合上、文字列が256文字以上の場合は空が返されます。 【書式】 変数 = GetExt,C:\test.txt 【例】 var $a$ = GetExt,C:\test.txt 「.txt」を格納 RemoveLastSeparator
渡された文字列の末尾に\が付いている場合、これを1つ取り除いた文字列を返します。
※「C:\hoge\\」のように末尾に\記号を2個続けて記述したイレギュラーな文字列の場合も1個しか除去しないことにご注意ください。 【書式】 変数 = RemoveLastSeparator,C:\test.txt 【例】 var $a$ = RemoveLastSeparator,C:\ 「C:」を格納 文字列操作SubString
指定文字列を指定の位置から指定長の文字を切り出します。
※指定文字列に,が含まれていても正しく切り出せますが、項の数が少ない場合はエラーになります。 【書式】 変数=SubString,開始位置(0基点),切り出す文字数,指定文字列 【例】 var $a$ = SubString,2,3,123456789 「345」を格納 Left
指定文字列を左から指定した文字数だけ切り出します。
※Ver.10.0.0で追加されたコマンドです。 【書式】 変数=Left,切り出す文字数,指定文字列 【例】 var $text$=123456789 var $a$ = Left,3,$text$ 「123」を格納 Right
指定文字列を右から指定した文字数だけ切り出します。
※Ver.10.0.0で追加されたコマンドです。 【書式】 変数=Right,切り出す文字数,指定文字列 【例】 var $text$=123456789 var $a$ = Right,3,$text$ 「789」を格納 Length
渡された文字列の長さを返します。
【書式】 変数 = Length,テキスト 【例】 var $text$=123456789 var $a$ = Length,$text$ 「9」を格納 String
指定文字列がすべて半角数字でも、文字列として扱います。
※Ver.12.1.4で追加されたコマンドです。 【書式】 変数=String,指定文字列 【例】 var x1 = string,003.0 MessageBoxOK=x1 「003.0」を格納、Stringを使わない場合は数字に変換されて「3」が格納されます。 Padding
指定文字列の左にゼロ埋めして、指定した文字列で切り出します。
※文字列操作なので、数字で無くても処理できますが、あまり意味はないでしょう。 ※Ver.12.1.4で追加されたコマンドです。 【書式】 変数=Padding,切り出す文字列数,指定文字列 【例】 var x1 = Padding,5,15 MessageBoxOK=x1 「00015」を格納。 TrimRight
指定した文字を、右側から除去します。
※Ver.12.1.4で追加されたコマンドです。 【書式】 変数=TrimRight,除去する文字(1文字),指定文字列 【例】 var x1 = TrimRight,\,\\server\共有\hoge\\ MessageBoxOK=x1 「\\server\共有\hoge」を格納 TrimLeft
指定した文字を、左側から除去します。
※Ver.12.1.4で追加されたコマンドです。 【書式】 変数=TrimLeft,除去する文字(1文字),指定文字列 【例】 var x1 = TrimLeft,\,\\server\共有\hoge\\ MessageBoxOK=x1 「server\共有\hoge\\」を格納 Find
検索テキストが走査するテキストに含まれていれば、0から始まる開始位置を返します。
検索テキストが見つからない場合は、-1を返します。 検索テキストが空文字の場合は、0を返します。 ※Ver.10.0.0で追加されたコマンドです。 【書式】 変数 = Find,検索テキスト,走査するテキスト 【例】 var $text$=123456789 var $45$=45 var $a$ = Find,$45$,$text$ 「3」を格納 Replace
検索テキストが走査するテキストに含まれていれば、置換テキストに全て置き換えます。
Cランタイムの同種の関数の制限により、あまり大きなテキストを扱うことができません。(テキスト長の上限は11KB前後です) ※Ver.10.0.0で追加されたコマンドです。 【書式】 変数 = Replace,検索テキスト,置換テキスト,走査するテキスト 【例】 var $text$=123456789 var $45$=45 var $a$ = Replace,$45$,ほげ,$text$ 「123ほげ6789」を格納 Csv
カンマ区切りされた検索テキストを分割して、指定した項番号のテキストを返します。
※当然検索テキスト内には「,」カンマも指定できますが、「,」を含んだ項は使用できません。 ※項番号は0から始まる数値です。 ※分割可能な項の数を超えたり、負の数を指定するとエラーになります。 ※Ver.10.0.0で追加されたコマンドです。 【書式】 変数 = Csv,抽出する項番号,走査するテキスト 【例】 var $text$=あ,い,う,え,お var $No$=4 var $a$ = Csv,$No$,$text$ 「お」を格納 var $b$ = Csv,3,あ,い,う,え,お 「え」を格納 クリップボードのテキストを取得する
クリップボードにテキスト形式のデータがあれば取り出します。
テキスト形式以外は一切取り込めませんのでご注意ください。 クリップボードが空であったり、テキスト形式以外であった場合は空文字が返ります。 【書式】 var 変数 = GetClipboardText 【例】 var hoge = GetClipboardText messageboxok=hoge クリップボードにテキストをセットする
テキストをクリップボードに保存します。
【書式】 SetClipboardText = 文字列 【例】 クリップボードのテキストをSQLと見なして整形してくれるツール「SQLFix」の前処理として、\t,\r,\nを半角スペースに置換してクリップボードにセットしなおすサンプル ※「SQLFix」はnagavさんが公開されているソフトです。(https://hp.vector.co.jp/authors/VA033418/) var $text$ = GetClipboardText $text$ = Replace,\t, ,$text$ $text$ = Replace,\r, ,$text$ $text$ = Replace,\n, ,$text$ SetClipboardText=$text$ CommandlineOption= OpenMode=0 MultiCommandMode=0 ShiftSilentMode=0 BootDir=1 BootMode=0 Run=(インストール先のフルパス)\SQLFix.exe ※Replaceコマンドの制限で、あまり長いSQL文は途中で切れてしまいます。 ラベルジャンプ動作
ラベルを定義することで、任意のスクリプト行にジャンプすることができます。
任意回数のループを作成する場合は、このジャンプ動作とif文を組み合わせて作成します。 安全装置である、ExitLoopCountのステータス定義コマンドに注意してください。 ラベル定義
行の末尾が:の場合にラベルとみなされ、Gotoコマンドの飛び先の目印にします。
ラベル名は大/小文字を区別します。 ラベル名の文中にスペースを含めることができますが、前後についているスペースは除去されます。 同名のラベル定義が存在した場合は、スクリプトの実行前にエラーメッセージが表示されてスクリプト解析を中断します。 【書式】 定義するラベル名: 【例】 label name : ("label name"がラベルになります) Goto
定義されたラベル行にジャンプします。
Gotoコマンドの飛び先には固定的なラベル名の他に、変数、環境変数、置換マクロ、入力置換マクロが使用でき、それらを展開後にラベル名として使用することができます。 ただし展開後に未定義のラベル名になると、その時点でエラー終了するのでご注意ください。 (?any?などでキャンセルボタンを押された時など特に要注意) ※ラベル名が定義されていない場合はエラーメッセージが表示され、処理を中断します。 ※if文とendifの間でGotoコマンドが使われると、全ての階層のifブロックのendifが呼ばれたものとして扱われます。 そのためif文の中にラベルを記述することはお奨めできません。 ※上位の記述へ戻る場合、無限ループにならないようにExitLoopCountの制限回数が適用されます。 【書式】 goto ラベル名 【例】 Var $変数$ = label name goto $変数$ goto ?any? goto label name 【NG例】 if $test1$ == 0 LABEL1: if $test2$ == 0 goto LABEL1※1でif文のないendifのエラーになる else goto LABEL2※1でif文のないendifのエラーになる endif LABEL2: endif※1 ExitLoopCount
Goto文で上位階層へ移動する回数の上限を指定します。
制限を越えるGoto文が出現した時点で、エラーメッセージを表示してスクリプトを強制終了します。 論理ミスで無限ループしないようにするため安全装置です。 なお全ての上位行への移動をまとめてカウントするので、ループカウンタにはなりえませんのでご注意ください。 未設定の場合は5です。 【書式】 ExitLoopCount=許容するループ回数 【ループカウンターより早く終了する例】 ExitLoopCount = 5 Var $カウンタ$ = 0 ループ開始: $カウンタ$ = +1 if $カウンタ$ != 10 MessageBoxOK=$カウンタ$ goto ループ開始 endif 条件分岐
条件式により、処理を分岐させることができます。
if/else/endif
条件式が成立する場合、ifとendifの間のスクリプトを実行します。
条件式が成立しない場合、elseとendifの間のスクリプトを実行します。 記述が不要な場合はelse節を省略することができます。 値には、変数、環境変数、定数、固定文字列、入力系置換マクロ、置換マクロが使用できます。 値1、値2の比較判定には、大/小文字を区別しません。(パス記述なども比較する前提です) ※大小の比較は、両辺とも半角数字(先頭の+‐の符号)の場合のみ数値として比較し、それ以外は文字列として比較します。 文字列として比較する場合も、一覧の名前順のように数字の大小を認識します。 全角数字やローマ数字などを使用した場合、負の数が扱えなくなるのでご注意ください。 【文字列比較の優先度の例】 test4 > TEST04 = test04 > test004 > test2 > test01 > test001 【文字コード比較と異なる実例】 300 > 5 【書式】 if 値1 <比較演算子> 値2 条件式が成立する場合に実行 else 条件式が成立しない場合に実行 endif 以下の比較演算子が使用できます。 ==・・・等しい !=・・・等しくない <・・・より大きい >・・・より小さい <=・・・以上 >=・・・以下 ^・・・値1が、値2のワイルドカード文字列に一致する !^・・・値1が、値2のワイルドカード文字列に一致しない 【例】 var $hoge$=3 if 1 == $hoge$ MessageBoxOK=1と等しい else MessageBoxOK=1と等しくない if 2 == $hoge$ MessageBoxOK=2だった else MessageBoxOK=2も違った if 3 == $hoge$ MessageBoxOK=3だった else MessageBoxOK=3でもない endif endif endif var $FileName$ = test.txt if $FileName$ ^ *.txt;*.doc;*.text MessageBoxOK=ワイルドカードに一致した else MessageBoxOK=ワイルドカードに一致しなかった endif var $空文字$ if $空文字$ == MessageBoxOK=空文字です! endif 繰り返し(選択ファイルの数だけ繰り返す/条件が成立する間は繰り返す)
繰り返しの命令は2種類存在しており、それぞれ全く動作が違いますので混同しないようにご注意ください。
for文は特に有用度が高いコマンドですが、やや上級者向けの機能として位置づけられているので、安全装置という意味合いのループ回数の制限はありません。 100万ファイル選択していると100万回ループしますし、whileで条件式が偽にならないと無限ループします。 途中で中断はできませんので、どうしても止めたい場合はタスクマネージャーから強制終了させてください。 また動作テストの際にはScriptTrace.exe(スクリプトのトレーサー)などをご利用ください。 ※As/Rは設定の保存時、アプリケーションの終了時以外は、読み取りモードでしかディスクアクセスしないので強制終了に強いアプリケーションですが、強制終了は極力しないように運用してください。
選択ファイルの数だけ繰り返す(For/Next/continue/break)
リストで選択されたアイテムの数だけForとNextの間をループします。
このループ内では、ファイル選択系の置換マクロが使用できます。 For-Nextの入れ子(ネスト構造)は、現在は使用できません。(Forの戻り位置は1ヶ所しか覚えません) ■ループ内で使用可能になる、選択ファイル系の置換マクロ 以下の選択ファイル系の置換マクロが仕様できます。 他にも環境変数や、入力系置換マクロ、一般置換マクロも使用可能です。 ?SelFile?,?selfile?,?FileName?,?Name?,?Ext?,?filename?,?name?,?ext?,?selpath?,?SelPath?,?SelParent? ※ループ内で使用する変数は定義済みのものである必要があります。(ループした時に2重定義になるためです) ※選択数が0の場合は未処理になります。 ※continueで次の候補でループの先頭に戻り、breakでループを抜けます。 【書式】 For アクティブタブのリストの選択数だけ繰り返す Next 【例】 var $FileName$ var $OtherValue$ var $counter$ = 0 if ?SelectedCount? == 0 messageboxok = 何も選択されてなかったよ! endif for //ここがFor文の最重要ポイント、選択アイテムをフルパスで”で括って置換するマクロ //ファイルが5個選択されていれば、5個が順々に代入されてループする $FileName$ = ?SelFile? //他の置換マクロも使用できます $OtherValue$ = ?NowDir?にある?FileName?を対象にします。もちろん、?any?とか?WEEK?とかのマクロも使えます $counter$ = +1 if $counter$ == 2 messageboxok = 選択2個目はcontinueしてみる continue endif if $counter$ == 4 messageboxok = 選択4個目でbreakしてみる break endif //この比較演算子を使って、拡張子を判別して実行コマンドを切り変えるといった応用も可能ですので工夫してみてください //ここでは、選択ファイルをシェル実行しています messageboxok = $counter$:$FileName$を実行します CommandlineOption = Shell = $FileName$ next 条件が成立する間は繰り返す(do/while/continue/break)
whileで指定された論理式が成立する間はdo-whileの間を繰り返し処理します。
多重ループは無制限で可能ですが、無限ループに陥ると強制終了しか回復方法がないので、利用の際には十分ご注意ください。 ※continueでループの先頭に戻り、breakでループを抜けます。 【書式】 do (繰り返し処理) while 論理式 【例】 do do i =+ 1 j =+ 1 while j < 3 j = 0 while i < 9 messageboxok=i,j 指定ディレクトリ以下のメニュー表示(MenuOfDirectory/MenuOfFile)
指定ディレクトリ以下のディレクトリやファイルを選択するメニューを表示します。
選択をキャンセルした場合は空文字を返します。 途中でアクセス権限がないディレクトリが含まれていると、そのディレクトリは遷移/選択できません。 本体とは別スレッドで駆動するものですから、このメニューはフォーカスを保持しませんのでマウスで操作する前提の機能です。
また将来、予告なく扱える文字の桁が増える可能性がありますので、ご注意ください。 (要望があればメニュー定義ファイルで可能な挙動の調整が可能であるためです) MenuOfDirectory
ディレクトリを選択するメニューを表示します。
.[Select Folder]を選ぶと、そのディレクトリを選択したことになります。 【書式】 MenuOfDirectory,<メニュー表示位置>,メニューのルートディレクトリ MenuOfFile
ファイルを選択するメニューを表示します。
【書式】 MenuOfFile,<メニュー表示位置>,メニューのルートディレクトリ 【例】 //c:\以下をメニュー表示して、ディレクトリを選択 var $SelectedDirName1$ = MenuOfDirectory,2,c:\ MessageBoxOk = $SelectedDirName1$ //As/Rのインストールディレクトリ以下をメニュー表示して、ディレクトリを選択 var $SelectedDirName2$ = MenuOfDirectory,2,%App_Dir% MessageBoxOk = $SelectedDirName2$ //現在リストで表示しているディレクトリ以下をメニュー表示して、ディレクトリを選択 var $SelectedDirName3$ = MenuOfDirectory,2,?nowdir? MessageBoxOk = $SelectedDirName3$ //c:\以下をメニュー表示して、ファイルを選択 var $SelectedFileName1$ = MenuOfFile,1,c:\ MessageBoxOk = $SelectedFileName1$ //環境変数%TMP%以下をメニュー表示して、ファイルを選択 var $SelectedFileName2$ = MenuOfFile,1,%TMP% MessageBoxOk = $SelectedFileName2$ UIダイアログの表示(SelectDialog)
スクリプトを分岐させる選択肢を入力するためのUIコマンドです。
SelectDialog
選択肢のダイアログメニューを表示します。
選択肢の1個目を選択すると0、2個目を選択すると1、3個目を選択すると2のようにインデックス番号をを返します。 選択をキャンセルした場合は-1を返します。 選択肢は最大で20個まで使用可能であり、21個以降は無視されて表示されません。 「デフォルトフォーカスのインデックス」は省略可能で、省略した場合は0(1個目にデフォルトフォーカス)とみなされます。 また選択肢の数を超えた場合、負の数、数値変換不能な桁の場合は0が指定されたものとみなします。 なお文字列が全て数字の場合に「デフォルトフォーカスのインデックス」が指定されたと認識しますので、省略の際の「選択タイトル」の記述にご注意ください。 【書式】 SelectDialog,[デフォルトフォーカスのインデックス,]選択のタイトル,選択肢1,選択肢,選択肢3,・・・ 【例】 var $SelectValue$ = SelectDialog,選択してください。,選択肢1,選択肢2,選択肢3 MessageBoxOk = $SelectValue$ 関連項目 ・基本的なスクリプトコマンド ・その他のスクリプトコマンド ・スクリプトコマンドリファレンス ・置換マクロリファレンス ・置換マクロ対応表 ・実行コマンドの違い一覧 ・定義系コマンド一覧 ・ウィンドウ制御文字列の書式 ・復元スクリプト詳細 |