過去の桐井戸端BBS (桐ver.9) |
17829 | 起動時パラメータで一括処理を指定したときパラメータを渡す方法はあるのでしょうか | うにん | 2002/11/01-16:48 |
Windows版の桐(一応バージョン不問)で、起動時パラメータで一括処理を指定したとき、パラメータを渡す方法はあるでしょうか? kiri.exe ikkatu.cmd param1 param2 のように起動して、param1をikkatu.cmdの中で参照するイメージです。 DOS版では、-Pとやってデータパス名を指定できたのですが、Windows版では無効のようです。 -Uで利用者コードを指定できるかとも思いましたが、こっちは「#利用者コード」関数自体なくなったようで、指定できてるか不明でした。 | |||
17831 | Re:起動時パラメータ | Ogo | 2002/11/01-17:03 |
記事番号17829へのコメント シェル実行 #桐パス名+"HELP\KIRI.TXT" との1行CMD を実行してみるべし。 多遊さんのところの掲示板過去ログより。 ><3277> Re:「関連付け」関連で質問/Ogo ■2002年10月27日 日曜日 00時12分32秒 【バッサリ略】 >なお、ファイルバイザーでは「ホットキーの設定」で >例えば「Z」キーの内容が >タイトル=「桐8(再定義)」 >プログラム名=「〜\System\KIRI8.EXE」 >引数=「-u KANASIGE -d "$F" -dp $P」 >とかすると重宝します(特に -dp $P >という引数は私にはウレシイ――これは >ファイルパレットを使えばすぐ判る)。 | |||
17833 | Re:起動時パラメータ | うにん | 2002/11/01-17:16 |
記事番号17831へのコメント Ogoさん >シェル実行 #桐パス名+"HELP\KIRI.TXT" > >との1行CMD を実行してみるべし。 わ〜、なんかいっぱい書いてありました。(インストーラのあるソフトは、フォルダの中を見ないので気づかなかった...言い訳^^) | |||
17834 | Re:起動時パラメータ | hidetake | 2002/11/01-17:21 |
記事番号17829へのコメント >kiri.exe ikkatu.cmd param1 param2 >のように起動して、param1をikkatu.cmdの中で参照するイメージです。 私も桐がどんな起動オプションを指定されて 起動したか状態を取得する方法が欲しい時があります.でも無理ですよね? 欲しいです. > K3 様 桐で使用できる起動オプションに関しては 既出なので省略. | |||
17835 | Re:起動時パラメータ | Ogo | 2002/11/01-17:27 |
記事番号17833へのコメント >>シェル実行 #桐パス名+"HELP\KIRI.TXT" >> >>との1行CMD を実行してみるべし。 すみません。 (^^;; シェル実行 #桐フォルダ名+"HELP\KIRI.TXT" の間違いでした。 (^^;; | |||
17842 | Re:起動時パラメータ | うにん | 2002/11/02-16:51 |
記事番号17831へのコメント >プログラム名=「〜\System\KIRI8.EXE」 >引数=「-u KANASIGE -d "$F" -dp $P」 > >とかすると重宝します(特に -dp $P >という引数は私にはウレシイ――これは >ファイルパレットを使えばすぐ判る)。 -dp なんですが、一括処理を起動すると、終了した後にしか効果がないですね。 こんなことをやっても、 C:\K3\KIRIV9\System>kiri9 -DP c:\ -W d:\ -R c:\k3\data\datapath.cmd datapath.cmd の中では #データパス名 は c:\ になってくれません。 一括処理が終わってファイルパレットが開くと、c:\ が初期値になってますが... 「一括処理を実行すると一括処理のパスをデータパスに設定する」仕様が優先されてるんでしょうねえ。 -W の方は、ヘルプに書いてあるのと違って「環境設定で設定した作業ファイルの保存場所」ではなく、 「現在の作業ファイルの保存場所」を返すようで、コマンドラインで指定した物を #作業パス名 で取得できました。 フォルダが存在しないとだめなので、文字列パラメータの代用としては無理がある... | |||
17843 | Re:起動時パラメータ | うにん | 2002/11/02-17:05 |
記事番号17842へのコメント >フォルダが存在しないとだめなので、文字列パラメータの代用としては無理がある... #GETENV なんつう関数がありました。とりあえず、これを使えば代用できそう? | |||
17856 | Re:起動時パラメータ | Ogo | 2002/11/03-23:24 |
記事番号17842へのコメント >C:\K3\KIRIV9\System>kiri9 -DP c:\ -W d:\ -R c:\k3\data\datapath.cmd > >datapath.cmd の中では #データパス名 は c:\ になってくれません。 >一括処理が終わってファイルパレットが開くと、c:\ が初期値になってますが... >「一括処理を実行すると一括処理のパスをデータパスに設定する」仕様が優先されてるんでし >ょうねえ。 一括処理であろうがなかろうが、桐の仕様として 「最後に開いたファイルのパスが #データパス名になる」と記憶しますが?( DOS 桐の頃から) が、ファイルパレットの初期値は「起動時の (最初にファイルを開く前の)#データパス名」 になっているみたいなんですよね。 # これも桐9で改善されないかと期待していた # 内容の1つなんだが。 | |||
17857 | Re:起動時パラメータ | Ogo | 2002/11/03-23:34 |
記事番号17856へのコメント >一括処理であろうがなかろうが、桐の仕様として >「最後に開いたファイルのパスが #データパス名 >になる」と記憶しますが?( DOS 桐の頃から) 訂正。 「最後に開け閉めしたファイルのパスが #データパス名になる」 複数のフォルダのデータをあちこち行き来してアクセスするような一括処理を組むと、 この辺りの話が重要になりますね。 どのファイルを最後に閉じたかで #データパス名 が 異なるのがもっともやっかいです (最後にどのファイルを開いたかは割合プログラム時に注意しているけど、 逆に閉じたファイルに関しては意識外になることが多い)。 従って、最初からそのようなシステムを組む場合は、 一括処理の冒頭で当該システム自身のルートフォルダを 何かの変数に代入しておいて、ファイルの開け閉めごとに #データパス名 をそこに戻す処理を入れておかないと、 一括処理がまともに動かなくなっちゃったりする (次に目的とするファイルを開こうとする時に、 パス名を含まないファイル名のみを指定しているおかげで、 「そのファイルが存在しない」エラーが発生しちゃうんですよね)。 | |||
17860 | Re:起動時パラメータ | Ogo | 2002/11/04-00:15 |
記事番号17843へのコメント #GETENV は環境変数を取得する関数です。 通常、「起動時パラメーター」はバッチファイルやスクリプト 果てはコンパイラ等でも %1 %2 とか表わしますが (起動時のコマンドライン全体は %0 という事になっている――汎用的に 使えるか否かは知らないが)、これは環境変数ではないので、 #GETENV では取得できません。 バッチその他のスクリプトで先に環境変数に代入しておいて、 そのスクリプトの中で桐を起動するコマンドラインを書くことは可能ですが (この件は、以前にここで議論した記憶があるので――たとえ環境変数を設定しても、 これはチャイルドプロセスでないと参照できないから手続きが面倒になるからです)、 どうせスクリプトを書くなら、環境変数経由よりも テキストファイル経由の方が面倒がなくていいのではないでしょうか? バッチファイルのイメージで書けば @ECHO OFF IF EXIST c:\k3\data\PARA.TXT DEL c:\k3\data\PARA.TXT ECHO パラメーター1 パラメーター2 >c:\k3\data\PARA.TXT C: CD C:\K3\KIRIV9\System kiri9.EXE -DP c:\ -W d:\ -R c:\k3\data\datapath.cmd これで、datapath.cmd の中で c:\k3\data\PARA.TXT を取り込めはしますよね。 もちろん環境変数経由でも同様に可能ですが、どっちにしても 桐自身が任意の起動時パラメーターを認識できないのだから、 スマートな方法にはなっていませんねぇ〜 | |||
17861 | Re:起動時パラメータ | Ogo | 2002/11/04-00:32 |
記事番号17860へのコメント >もちろん環境変数経由でも同様に可能ですが、どっちにして >も桐自身が任意の起動時パラメーターを認識できないのだから、 >スマートな方法にはなっていませんねぇ〜 スクリプトを書いていいんなら、一番スマートなのは ECHO てすと,文字列,共通,テスト > c:\k3\data\てすと.var C:\K3\KIRIV9\System\kiri9 -DP c:\ -W d:\ -R c:\k3\data\datapath.cmd でその cmd 冒頭で 変数読み込み "c:\k3\data\てすと.var" かな? | |||
17862 | Re:起動時パラメータ | うにん | 2002/11/04-14:39 |
記事番号17861へのコメント >変数読み込み "c:\k3\data\てすと.var" なるほど、これだと数値の場合に読み込んでから変換しなくていいし:-D |