Indexへ
(2635)//【2578】→(2583)
------------------------
【タイトル】外部変形 オプションの指定について
【記事番号】 2578 (*)
【 日時 】03/03/04 21:31
【 発言者 】H.yonezawa

実行時の起動オプションの指定で REM #C が10回まで指定できるのを20回位まで指定できないのでしょうか
もし出来るのでしたら
*.BATファイルに記入しなければならい事
又 RABYで10回まではARGV[0]〜ARGV[9]でデータ入力できますが11回目以降は度の様に入力するのでしょうか


Indexへ
(2578)←【2583】→(2584)
------------------------
【タイトル】Re(1):外部変形 オプションの指定について
【記事番号】 2583 (2578)
【 日時 】03/03/05 07:26
【 発言者 】ko

▼H.yonezawaさん:
>実行時の起動オプションの指定で REM #C が10回まで指定できるのを20回位まで指定できないのでしょうか


REM #k #i #c #f 等含めて9回分batファイル中の因数として%1〜%9で参照出来るが
それ以上を参照する為には、それぞれの因数をシフトする必要がある

REM #c 等の指定は20回でも30回でも可能、それをいかにして因数として
取り込むかを工夫する

jww側からは、REM #・・・ で指定された情報を 半角スペースで区切って一連の文字データで出力される

そのデータをシステム側で、半角スペースや半角カンマをフィールドセパレータとして、分断して%1〜%9に割り振る(%0 はBATファイルのファイル名)

shift コマンドで、%0〜%9の順序を1つずつ繰り上げ、10個目以降を参照出来る様になる

以上、BATファイルのシステム側の問題となる

そこで、一番最初の入力部分で、入力データの最初に『"』を付けてやると
jwwから出力されるデータを1つの文として分断されずに %1 に割り当てられる


REM #c ・・・・・/_"/a
REM #c ・・・・・/_/b
REM #c ・・・・・/_/c
これで 『"/a入力1 /b入力2 /c入力3』が%1 の内容となる

%1 の内容の先頭に『"』 が付いているので コマンドラインで参照するとき %1" と %1 の後ろに『"』を付ける

注意事項として
REM #c は入力を省略される場合が有る
入力を省略されると、その入力の先頭に付加する文字も出力されないので
最初の#cで"を付けようとして、その入力を省略されると、"の出力がされないので
まともに動作しなくなる

入力の省略不可と注意を図るか、出来れば最初にREM #k で " を付加したデータの
出力が望ましい(#k #i は省略が有り得ない)

後は、それを処理するプログラム上でデータを割り振る
(AWKの場合 split 他も似たような関数でしょう)

RABY ??? Ruby は知らんが、ARGVのどこかに一連で入るはず
(batファイルの指定方法で位置が変わるはずなので、何とも言えん)


Indexへ
(2583)←【2584】//(2587)
------------------------
【タイトル】ちょっと補足
【記事番号】 2584 (2583)
【 日時 】03/03/05 07:36
【 発言者 】ko

付加文字に"を付ける事は、BATファイル上で特殊な意味を持つ半角記号の入力時にも有効

通常 ^ \ % , > 等は問題が有るが " を付けると、入力可能となる

" だけはどうしても入力出来ない(キャラコードで入力するしか無い?)