引数を,で区切るルール
TextRunRun
には特別なルールとして、
引数1が
,
なら、
スペースではなく
,
が引数の区切り文字になるというルールがあります。
上の2つの例は同じ処理になります。
引数1が
スペース , スペース
であることが条件です。
他にもいくつか条件があります。
規定のコマンドの場合
辞書
の種類でしか説明していない事ですが、規定のコマンドには
7
種類のタイプがあります。
その種類の、タイプ
6
のみ、
この「引数を,で区切るルール」
が適用されます。
どの規定のコマンドがどのタイプに属するかは
このホームページの辞書のページで確認しない限り分かるようにはなっていません。
辞書 規定のコマンド
&outArgsTestType6
の規定のコマンドを使うと
引数がどのような形で「タイプ6の規定のコマンド」に引き渡されるかを確認できます。
先ほどあげた、例の
&newItemFromCommand
を
&outArgsTestType6
に変えて
と
を試すと同じ引数で処理されている事が確認できると思います。
アイテムの場合
アイテムの実行時の引数にも、 引数を,で区切るルール が適用されます。
ただしこれも条件があり、
%1
などの
%[数字]
を使用している場合と、
B_itemArg1
などの変数をスクリプト内で使用している場合に限ります。
%1 などの %[数字] を使用している場合
%1
などをアイテムの引数に記入していた場合に
種類がスクリプトなら、リンク先に
引数を,で区切るルール
が使用されます。
先ほども説明した様に、
引数1が
スペース , スペース
の場合、
,
を引数の区切り文字として認識します。
%∗ のみを記入していた場合もこのルールは使用できます。
ですので,の文字が取り除かれた状態で引数が渡されます。
%∗ のみを記入していた場合は , で区切る必要はないと思いますが。
これも、どのように動作するかは、
Alt+o
で確認するとよいと思います。
%1 などの意味は別のページで説明しています。
B_itemArg1などの変数を使用している場合
B_itemArg1 などの意味は別のページで説明しています。
B_itemArg1
などを
二行以上のアイテム
のスクリプトに記入していた場合に
引数を,で区切るルール
が使用されます。
B_itemArg1
には,で区切った引数1
B_itemArg2
には,で区切った引数2
が値として代入されます。
B_itemArg0
には、引数の数が代入される仕様になっています。
そして
B_itemArg0
にも、引数の数は
,
で区切った事を考慮して代入しますが、
10を超えても、その数が代入されてしまいます。
B_itemArg9 までしか存在しない事は考慮しません。
B_itemArgAll
ですが、
引数を,で区切るルール
は考慮しません。
よって、,の文字はそのままになっている引数が代入されてしまいます。
B_itemArg1などを使う場合は、%--を使う
B_itemArg1
などの変数ですが、この変数を記述したスクリプトでも、
「実行もとの引数」は「スクリプトの後に続く引数」になることに注意してください。
%-- を アイテムのスクリプトの最後に記述することで、対処します。
さて、スクリプトの後に続く引数になる場合は、
引数を,で区切るルール
が使用されません。
その部分は、,の文字はそのままになっている引数が追加されます。
つまり、先ほど説明した、
%1
などがないかぎり、
引数を,で区切るルール
は使用されません。
もっとも、%-- を記入しているなら、「スクリプトの後に続く引数」にならないので気にすることはありません。
動作の確認方法
B_itemArg1
の変数が
,
で正しく区切られているかどうかですが、
%1
などを使った場合と違い、
Alt+o
を使っての確認ができません。
いまのところ、スクリプト内に
F_output( "B_itemArg1 " . B_itemArg1 . "`nB_itemArg2 " . B_itemArg2 )
などを記述して値を確認するしかありません。
当然、確認した後はこの F_output() の記述を削除する手間がかかります。
空白で区切る場合との違い
あまり細かい事は「マニアックな説明」で書こうと思いますが、
空白で区切る場合、
" "
で囲まれている半角スペースは、区切り文字として扱わない。という仕様になっています。
そのケースと違い、
引数を,で区切るルール
では、
,
が
" "
で囲まれていても、区切り文字として扱います。