0

ネットワーク ドライブをマップし、MS Access プログラムを実行してから、マップされたドライブを削除して終了する .bat ファイルがあります。Control-M で実行すると、.bat が実行されて終了しますが、Control-M のジョブは終了しません。ファイルを終了してControl-Mに終了コードを送信するために複数のことを試みましたが、何も機能していないようです。以下はコードです:

@echo off
net use w: [path]
"C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE" "Y:\MSAccess.mdb"
net use w: /delete

このコードの後、次のコマンドを試しました。
exit
_exit 0
timeout /T 10

私が何を試しても、Control-M はジョブが終了したことを認識していないようです。Control-M からの sysout にも、送り返される終了コードは表示されません。

4

4 に答える 4

0

さらにテストと調査を行った後、問題は .bat の初期段階で発生していました。MS Access データベースが開かれて実行されることはありませんでした。したがって、開始したことがないため、終了したり、エラー コードを送信したりすることはありませんでした。MS Access データベースが現在実行されていない理由を調査しているため、別の質問につながる可能性があります。

于 2013-04-15T14:54:35.233 に答える
0

Control-M は、ジョブ自体を終了する前に、その下で開始されたすべてのプロセスが終了するのを待っている可能性があります。あなたの場合、MSACCESS は BAT の最後に達したときにまだ実行されているため、Control-M ジョブが終了しません。

MSACCESS が終了するまで BAT が待機している場合は、

net use w: [path]
start /b /wait "" "C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE" "Y:\MSAccess.mdb"
net use w: /delete

これはあなたの問題を(少なくとも静的に)軽減するかもしれません

于 2013-04-04T15:46:48.617 に答える