分割テキストの仕様
分割テキストがある理由は、 実行コマンドと引数を分かりやすく分割して実行できるようにするためです。
Alt+o &openConfirm を使った時に、分かりやすく表示するためでもあります。
分割テキストについての説明は
普通の使い方
の説明にも書いているため、
ここでは、細かい仕様のみ記入していこうと思います。
内部処理が何種類かに分かれている
一行テキストと違って、内部処理的には何種類かに分かれていたりします。
- 規定のコマンドを使う場合
- ファイルパスを使う場合
- アイテムを使う場合
- それ以外
規定のコマンドを使う場合
アイテム名 か ファイルパス か 引数1
アイテムの引数 か 引数2
つまり、入力欄1つで1つの引数として認識します。
その次の 作業フォルダのみ の入力欄は、完全に無視します。
&&& や >>> の引数
の入力欄は、
引数6
の扱いになります。
ファイルパス
アイテム名 か ファイルパス か 引数1
アイテムの引数 か 引数2
作業フォルダのみ
の入力欄を使用する効果があるのは、
この「ファイルパスを使う場合」のみになります。
それ以外の入力欄
引数3
、
引数4
、
引数5
、
&&& や >>> の引数
は、引数として扱われます。
という扱いで解釈されます。
規定のコマンド
の入力欄に文字があると、
規定のコマンドと解釈されるので、「ファイルパス」での指定として扱われません。
2つめの入力欄がアイテム名なら、アイテムの実行と解釈されるので、これも「ファイルパス」での指定として扱われません。
アイテム
アイテム名 か ファイルパス か 引数1
アイテムの引数 か 引数2
それ以外の入力欄
引数3
、
引数4
、
引数5
、
&&& や >>> の引数
は、引数として扱われます。
という扱いで解釈されます。
規定のコマンド
の入力欄に文字があると、
規定のコマンドと解釈されるので、「アイテム名」での指定として扱われません。
それ以外の処理
規定のコマンドでも
ファイルパスでも
アイテムでもない場合、
それ以外の処理を検証します。
AHK のコマンド、変数の代入、演算、関数の実行、 if 文かどうか、など
これらは、
[2つめの入力欄] + スペース +
[3つめの入力欄] + スペース +
[引数3] + スペース +
[引数4] + スペース +
[引数5] + スペース +
[&&& や...]
の文字列から検証されます。
順番
- 規定のコマンドの入力欄が「規定のコマンド」かどうか
- AHKのコマンドかどうか
- 関数かどうか
- 2つめの入力欄が「アイテム名」
- 2つめの入力欄が「ファイルパス」
- それ以外の処理かどうか
「アイテム名」と「ファイルパス」は、 規定のコマンド の入力欄に文字があると、それらとして扱わない。
上のものから優先されます。
大体はこんな感じです。
ファイルパスのみなら""をつける
3つめの入力欄の下部分にある
ファイルパスのみなら""をつける
についてです。
これは、入力欄の文字がファイルパスのみが記入されていた場合、 そのパスを" "で囲む事をします。
これが動作しているかどうかは、 Alt+o で確認すると分かりやすいと思います。
対象になる入力欄は、
- 3つめの入力欄アイテムの引数 か 引数2
- 引数3
- 引数4
- 引数5
- &&& や >>> の引数
のみです。
1つめと、2つめと、 作業フォルダのみ の入力欄は含まれません。
似たものとして
似たような設定に
アイテムの登録のウインドウ
の項目に
引数のファイルパスを
自動的に""で囲むようにする
があります。
アイテムの実行の例を挙げて説明します。
で実行するとします。
その場合、引数の部分は
の引数で扱われます。
この、
自動的に""で囲むようにする
の設定にチェックを入れているアイテムを実行すると、
の中にファイルパスが含まれているかどうかを検索して探すという処理をします。
ファイルパスが見つかればそれを
" "
で囲みます。
この「ファイルパスが含まれているかどうかを検索して探す」という処理は 割と複雑なため、安定性にかけるかもしれません。
現時点では問題なく動作しているようなので、ミスが見つからないだけです。
これも Alt+o で確認すると分かりやすいと思います。
尚、現時点では、ソフト・ファイルの種類でのみ動作する設定です。
さて、今回の
分割テキストにある
ファイルパスのみなら""をつける
の処理の方の事ですが、
上の例とは違い、
入力欄にファイルパスのみが記入されている場合のみ
動作します。
単純な仕様のため、応用は利かないでしょうが動作的に信用がしやすい構造になっているので、意図しない動作はしないと思います。
動作の種類ごとのするしない
ファイルパスのみなら""をつける
の動作について、内部処理の違いごとに
動作する場合と、しない場合を挙げておきます。
規定のコマンド使用時は意味を成さない。
ただし、1つの入力欄にファイルパス以外も入力されている場合は動作しない。
ただし、1つの入力欄にファイルパス以外も入力されている場合は動作しない。
AHKコマンドなども動作しない。
AHKコマンド なども動作しません。
Run
の
AHKコマンド
などでも、ファイルパスを
" "
で勝手に囲む事ような事はしません。
テキスト上のキー
分割テキスト のキーによる実行は 一行テキスト のそれと少し仕様が違うところがあります。
キーで動作した時の例を挙げます。
一行テキストをテキスト上のキーで動作させた場合
で実行されます。
今度は 分割テキスト の場合です。
分割テキスト
の場合は
規定のコマンド
の入力欄にある文字が、
「キーのスクリプト」に丸々入れ替わるという仕様になっています。
分割テキストをテキスト上のキーで動作させた場合
[2つめの入力欄]
[3つめの入力欄]
の内容で実行されます。
つまり、キーで動作する場合は、
規定のコマンド
の入力欄にある文字は、何を記入していても無効ということです。
ストックを使う場合
ストックにある処理を
テキスト
からキーで実行する場合です。
Ctrl+1等の場合です。
これは
&collabText
の規定のコマンドを実行している事と同じです。
&collabText で実行する処理は、 一行テキストで実行する場合と同じ処理で実行します。
つまり、
分割テキスト
からストックをキーで実行しても、
一行テキスト
で実行した場合と同じになるため、少し動作が違う事になります。
テキスト上のキーの方を使用した場合は、
分割テキスト上で動作させる意味があります。
キーに関する動作を詳しく語ると内容がマニアックになるため、これ以降のキーに関する説明はマニアックのページの方で説明する事にします。