過去の桐井戸端BBS (桐ver.9)
30751 実行中の一括処理ファイル名を取得する方法を教えて下さい。 くもん 2005/08/07-12:44
VER9-2004を使用。
実行中の一括処理ファイル名を取得する方法を教えて下さい。
よろしくお願いします。
30752 Re:一括処理ファイル名の取得 幅田 2005/08/07-12:51
記事番号30751へのコメント
くもんさん
こんにちは。
過去のBBS(過去ログ)
http://www.fuku3.com/~habata/kbbs/kakov9/28324.htm
「実行中のCMDのファイル名を取得したい」
は参考になりませんでしょうか。

==
ファイル名については、そもそも、その一括処理が
実行できている段階で、ファイル名は特定されているはずですので、

該当のファイル名を格納する変数を1つ用意して、
一括処理の最初に
&一括ファイル名="該当ファイル.CMD"
などという一文を書いておけば、
いいんじゃないでしょうか?

("該当ファイル.CMD"は実行中のファイル名)
==

#この過去ログもくもんさんのご質問だったのですが、
#今回のくもんさんとは別人なのかな?


30755 Re:一括処理ファイル名の取得 くもん 2005/08/07-17:35
記事番号30752へのコメント
幅田さん


同一人くもんです、言葉足らずでごめんなさい。
今回のお尋ねは関数等で取得できればと思って質問しました。
どの実行位置から起動した場合も間違いなく取得出来ればと考え質問いたしました。
申し訳ありませんでした。

30757 Re:一括処理ファイル名の取得 T.Samura 2005/08/07-19:00
記事番号30751へのコメント
くもんさん、こんにちは。

桐V8ですが以下で取れそうです。&一括ファイル名に入ります。
試してみてください。
実行中の一括処理ファイルはコピーに失敗するを利用してます。
複数の桐を起動して複数の一括処理が実行されてると誤動作しそうですが。

変数宣言 固有,文字列{&検索,&発見,&一括ファイル名,&Dummy="$$$$$$$$.$$$"}
変数宣言 固有,長整数{&count,&ResultOpen,&ResultRead,&Result}
代入 &検索=#CAT(#一括パス名,"*.cmd")
代入 &count=1
繰り返し
 &発見=#ファイル検索(&検索, &count)
 条件 (&発見=#undef) 繰り返し中止
 条件 (#ファイルサイズ(&Dummy)<>-1) ファイル削除 &Dummy
 ファイル複写 &発見,&Dummy,終了状態=&Result
 代入 &STR=#CAT("発見[",&発見,"]"," ",#STR(&count),"個目" \
    ," &Result[",#STR(&Result),"]")
* 確認 &STR
 if (&Result<>0)
  代入 &一括ファイル名=&発見
  繰り返し中止
 end
 &count=&count+1
繰り返し終了
条件 (#ファイルサイズ(&Dummy)<>-1) ファイル削除 &Dummy
*確認 #cat("終了 ",&STR)
確認 &一括ファイル名


30763 一括処理ファイル名を取得したい理由は? 悲しげ 2005/08/07-22:21
記事番号30751へのコメント
なぜ「実行中の一括処理ファイル名を取得」したいのでしょう?
その理由いかんでは、別なスマートな方法があるかもしれません。
私には全くその必要性が想像できないのです。特に

>どの実行位置から起動した場合も

ってどういう状況なのか?

30770 Re:一括処理ファイル名を取得したい理由は? T.Samura 2005/08/07-23:25
記事番号30763へのコメント
私の場合の話ですが、一つの一括処理で複数の使い分けをする場合、
変数ファイルで動作環境を変えるには(一括処理ファイル名).VARを
読み込み・保存するのが簡単です。元の一括処理を名前を変えてコピーして
一括A.CMD 一括B.CMD 一括C.CMD とし、それぞれ設定を変えて
使い分ける場合に一括処理内で自身のファイル名が分かると便利です。
Windowsのユーザー別個人設定のような考えを実行するには、
一括処理ファイル名が実行時に得られるとプログラムの自在性が向上します。
とにかく出来ないよりも出来た方がなにかと融通が利きます。
#一括パス名 があるのだから #一括ファイル名 が有ってもいいと思います。

30774 Re:一括処理ファイル名を取得したい理由は? 悲しげ 2005/08/08-00:11
記事番号30770へのコメント
>とにかく出来ないよりも出来た方がなにかと融通が利きます。
>#一括パス名 があるのだから #一括ファイル名 が有ってもいいと思います。

もちろんそのとおりです。
云うまでもないことなのかもしれませんが、私は「必要性が想像できない」
と書いただけで、「必要性が無い=そのような関数は不要である」と主張している訳ではありません。(^^;)
で、現時点でその手の関数は存在しない中で何とか対処するのだとすれば、
「その理由いかんでは、別なスマートな方法があるかもしれません」と云うことで、
その理由、云い換えれば利用できる何らかの状況が無いものかどうか、と云うことです。

>元の一括処理を名前を変えてコピーして・・・・

の記述で必要性の一端は諒解できましたし、個別的な対処方法のイメージも少しは出そうな感じになれました。


あと今になって思うに、No.30755の

>どの実行位置から起動した場合も

の「実行位置」とは「一括処理実行 ・・・・,<名札名>」なのかな???

30782 Re:一括処理ファイル名を取得したい理由は? 佐田 守弘 2005/08/08-07:04
記事番号30763へのコメント
各位
まあ、一括処理は何を起動しているのかは、本来設計するユーザーが分っているはずだし、
必要があれば、変数を宣言して一括処理ファイル名を代入しておけば用が済むのではないかと思っているクチです。

とは言え、「はて、ワシは何処の誰だったかのう?」という人が増えている
昨今、一括処理ファイル名を取得できる関数があっても悪くはないとは思いますが。

佐田守弘(KS-00119)
30819 Re:一括処理ファイル名の取得 くもん 2005/08/09-08:43
記事番号30751へのコメント
幅田様 悲しげ様 T.samura様 佐田様 有難う御座いました。

悲しげ様 位置とは御賢察のとおりです。

T.samura様 佐田様 私も#一括処理ファイル名なる関数があればよいのにとの考えもあり投稿しました。

幅田様 現在以前教えて頂いた方法 &一括=実行CMD で現在使わせて頂いております すみません。

必要性につきましては私の愚考な 一括処理で説明が長くなりうまく理解して頂ける自信がないのでやめますが、
概要は暦年毎にCMDと各帳簿TBLを作成し メニューから前年を指定すれば
(今年なら)平成16年分のCMDを起動→終了すれば平成17年分CMDを起動する。
一定期間以前の場合はBAckupファイルのCDを読みにゆくなどし、終了すれば又現行年のCMDを起動させます。
また起動したCMDが現行年であれば予定チェックなどを実行させ、現行年分でなければチェックせず
又帳簿によっては更新を禁止するなど規制しています。
(一括処理実行時の名札位置が状況により一定でない)
これを年変わり時においてもCMDに手を加えず使えるようにしています。
(但し一定期間経過分は所定のCDへ複写処理は任意手作業)
このCMD作成に#一括処理ファイル名のような関数があれば大変重宝する思い投稿いたしました。
現在存在しないことと、共感頂ける方もいらっしゃることが確認できたことで今後改善されることを期待します。
有難うございました。

戻る