DB2の知識が必要な人はほとんどいないと思いますが、自分のための覚書です。

DB2のインポートコマンドなどを、バッチで一気に実行したい場合、バッチファイル内に"db2 import from c:\test.del ..."等と、書いたら動きそうに思えますが、実際には動きません。

db2のコマンドはWindowsのコマンドプロンプトからは直接動かず、db2cmdで起動するコマンドプロンプトとそっくりの黒い画面上でないと動かないのです。

じゃあどうすればよいのかというと、バッチファイルにはdb2cmd db2 import from c:\test.del..."のように、db2cmdを先に書いてその後にdb2コマンドを続けます。

ただ、これだと、DBコネクトがかけないので、実行したいコマンドは別ファイルにしておき、db2から呼び出すようにします。

例えば、
import.txt
    connect to testdb;
    import from c:\test1.del of del insert into test1;
    import from c:\test2.del of del insert into test2;
    import from c:\test3.del of del insert into test3;
    connect reset;

というファイルを作成しておき、
db2cmd db2 -f import.txt
というように実行すると、import.txtの中身を全て実行してくれます。


また、別のやり方として、バッチファイル自体を呼び出す方法もあります。
import.bat
    db2 connect to testdb
    db2 import from c:\test1.del of del insert into test1
    db2 import from c:\test2.del of del insert into test2
    db2 import from c:\test2.del of del insert into test3
    db2 connect reset

というファイルを作成しておいて、
db2cmd import.bat
というように実行すれば上のやり方と同じ結果になります。

どちらが良いのか分かりませんが、下のやり方だとコマンド実行時に引数を与えることができます。与えた引数はimport.bat内で%1で拾うことができます。