• ベストアンサー

バッチファイルについて再々質問

再度、バッチファイルについて質問があります。 以下のようなバッチファイルの一部分があります。 set msg=前日のデータ更新に失敗しています %ztk_exe%\ztk_kyo_upd_shori_rireki.exe %DB% %ztk_curr_date% %ztk_prog_id% E/E %msg% 2行目の"%ztk_exe%\ztk_kyo_upd_shori_rireki.exe"については、 環境変数"ztk_exe"で定義されたパスにファイル"ztk_kyo_upd_shori_rireki.exe"が存在し、 それを実行せよ、という意味なんでしょう。 後ろの部分、"%DB% %ztk_curr_date% %ztk_prog_id% E/E %msg%"の 意味が分かりません。 確か"E"は set ZTK_OR_DISK=E: と定義されていました。 どうかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • honiyon
  • ベストアンサー率37% (331/872)
回答No.2

こんにちは、honiyonです。  それは、ztk_kyo_upd_shori_rireki.exeに引き渡すオプション(引数)であると思います。 しかし、直指定ではなく、環境変数を使用しているようですね。  各項目がどのような意味かは仕様書やマニュアルを参照して下さい。  ここからは私の推測です。  それは何かのデータベースを操作するプログラムですね。  それで、ztk_kyo_upd_shori_rireki.exeは、今日のデータベースの更新処理履歴を付ける(処理する)プログラム、簡単に考えるとログを記録するプログラムであると思いました。  そうすると、%DB%は処理対象のデータベース名、%ztk_curr_date%は、ログ記録日(Current Date)、%ztk_prog_id%はプログラムID、%msg%は保存するメッセージ(前日のデータ更新に失敗しています)であると思います。  E/Eは分かりません。ログの種類の指定かな?エラーとか警告とか。  とりあえず、仕様書やマニュアルを確認してみてください。  もしそれらが存在しなくて、わかんね~、という時は、ztk_kyo_upd_shori_rireki.exeの前に以下の行を追加してみてください。  echo %DB%  echo %ztk_curr_date%  ...略  こうすると、各環境変数の中身が画面に表示されます。  環境変数の中身が分かれば、ある程度推測がつくと思います。  参考になれば幸いです(..

tsurujan
質問者

お礼

よーくわかりました。そうですか、引数でしたか。 詳しいことについては仕様書その他で調べるしかないようですね。 有り難うございました。

tsurujan
質問者

補足

honiyonさん、さすが経験者だけあって鋭いですね。 その通りです。このプログラムはデータベースを操作する プログラムです。詳細については述べられませんが…。 そこで質問です。 rem -- ENVファイルの移動 call %ZTK_EXE%\ZTK_COPY.EXE 0 1 %ztk_env%\ZTK_SET_ENV.BAT %ZTK_CURR_DATE% %ZTK_BCK_RT%\ENV これもそのデータベースを操作するプログラムの一部分なんですが、 "call %ZTK_EXE%\ZTK_COPY.EXE"についてはわかります。 その後なんです。意味が理解できません。

その他の回答 (2)

  • honiyon
  • ベストアンサー率37% (331/872)
回答No.3

こんにちは、honiyonです。 call %ZTK_EXE%\ZTK_COPY.EXE 0 1 %ztk_env%\ZTK_SET_ENV.BAT %ZTK_CURR_DATE% %ZTK_BCK_RT%\ENV  #2でも同じ様な事を書きましたが、0 1...というものは、%ZTK_EXE%ZTK_COPY.EXEのオプション(引数)です。  %ZTK_EXE%ZTK_COPY.EXEは、0 1 %ztk_env%\ZTK_SET_ENV.BAT %ZTK_CURR_DATE% %ZTK_BCK_RT%\ENV という、計5個の引数を伴って呼び出されます。  これらの引数にどんな意味があるのか?という点については、仕様書やマニュアルを見るしかありません。引数の意味はプログラムよって千差万別である為です。 見た目で意味が理解出来ないのは当たり前といえば当たり前なのです。  仕様書やマニュアルがない場合は、手探りで意味を確かめていくしかありません。  とりあえず、echoコマンドを使用し各環境変数の中身を確認、その後にプログラムを実行してみて、何がどうなったか?と確かめるだけでも理解出来るかも知れませんよ。  参考になれば幸いです(..

回答No.1

ztk_kyo_upd_shori_rireki.exeに、オプションとしてDBという環境変数の 中身とztk_curr_dateという環境変数の中身、ztk_prog_idという環境変数 の中身、E/Eという文字列、そしてmsgという環境変数の中身を渡せ、とい う意味です。渡されたオプションをどう使うかはztk_kyo_upd_shori_rireki.exe 次第ですが、DBに履歴ファイル名が定義されてて、そこにいろいろ書き込 むような気がしなくもないです。

tsurujan
質問者

補足

grumpy_the_dwaftさん、度々私の質問に対して答えて くださって、有り難うございました。そこでgrumpy_the_dwaftさん、 次の文はどう理解したらよいのでしょうか? rem -- ENVファイルの移動 call %ZTK_EXE%\ZTK_COPY.EXE 0 1 %ztk_env%\ZTK_SET_ENV.BAT %ZTK_CURR_DATE% %ZTK_BCK_RT%\ENV 特に、"ZTK_COPY.EXE"の後ろの部分、"0 1" が気になりますが…?

関連するQ&A