文字が" "で囲まれているときのルール
この TRR のスクリプト上では、文字が " " で囲まれている時は特別なルールで扱われる事になります。
その特別なルールは、実行する内容でルールに違いがあります。
大体4パターンに分かれます
- 文字列の場合
- 規定のコマンドの場合
- ファイルパスで実行時
- AHKコマンドの場合
1.文字列の場合
varName1 := "文字列"
や
function( "文字列" )
などのパターンです。
% % や # # で囲まれた文字は textOut されず、そのままの状態です。
&&& や >>> や <<< の文字を特別な文字として扱いません。そのままの状態です。
`n の文字は改行に変換
`n の文字は改行に変換します。
AHK
と違い、
TRR
では通常、
`n
や
`r
などのエスケープされている文字は変換されず、
ただの
`n
や
`r
の文字としてだけ扱われます。
エスケープ文字を使う場合は
Transform, varName2, Deref, %varName1%
または
varName2 := F_transformDeref( varName1 )
を使って変換する必要があります。
ですが、今回の様に
" "
で囲んだ文字列として扱う場合は、
`r
と
`n
のみ、
CRの改行、LFの改行に変換されます。
他の `t などのエスケープされている文字は変換されません。
あくまで、
" "
で囲まれている文字列の場合にその変換をするだけなので
varName1 := "一行`n二行`n"
は改行に変換されても、
varName1 = 一行`n二行`n
は改行に変換されません。
2.規定のコマンドの場合
&outArgsTestType6 "文字列1"
規定のコマンドの場合 " " で囲まれた文字は以下のルールで扱われます。
引数は半角スペースで分割されません。
" " で囲まれた部分以外のスペースが引数の区切り扱いになります。
% % や # # で囲まれた文字は textOut されず、そのままです。
&&& や >>> や <<< の文字を特別な文字として扱いません。
両端の " " は削除されます。
ただし、
「引数を,で区切るルール」を使用して、
,
で区切った場合は、両端の
" "
は削除しません。
現時点の使用では、
「引数を,で区切るルール」を使用した場合、
% %
や
# #
で囲まれた文字は、
" "
で囲まれていても
textOut
で値が展開されるようになっています。
&outArgsTestType6
を使えば確認をしやすいと思います。
&outArgsTestType6 "文字列1" "文字列2"
などで、規定のコマンドにどのような形で引数が渡されるか確認できます。
3.ファイルパスで実行時
ファイルパスから実行する場合の " " で囲まれた文字のルールです。
この場合、ファイルパスと引数とで処理が違います。
実行ファイルパス・作業フォルダ
% % や # # で囲まれていたら、 textOut して展開します。
当然、両端の " " を取り除いたファイルパスを実行します。
引数
% % や # # で囲まれていたら、 textOut して展開します。
両端の " " は削除されず、そのままです。
アイテム
の種類がソフト・ファイルやフォルダの
アイテム
を実行した時も、同じ動作になります。
後、 &&& や >>> や <<< の文字を特別な文字として扱いません。
&&& や >>> の文字を " " で囲んで使う機会は無いと思いますが。
4.AHKコマンドの場合
Run, "%programFiles%\sakura\sakura.exe" "%programFiles%\AutoHotkey_Lw\readme.txt" , %programFiles%\sakura
" " は、だだの " " の文字として扱われます。
% % や # # で囲まれた文字は textOut して、展開します。
AHK の Run コマンドは、作業フォルダが " " で囲まれていた場合は、フォルダのパスとして認識できなくなります。
後、 &&& や >>> や <<< の文字を特別な文字として扱いません。
&&& や >>> の文字を " " で囲んで使う機会は無いと思いますが。