在.bat完成后,Control-M作业没有结束

时间:2013-04-04 13:48:08

标签: ms-access batch-file mapped-drive control-m

我有一个映射网络驱动器的.bat文件,运行MS Access程序然后删除映射的驱动器并退出。当我通过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 个答案:

答案 0 :(得分:0)

Control-M可能正在等待在其下启动的所有进程在退出作业本身之前退出。在您的情况下,当达到BAT结束时,MSACCESS仍在运行,因此它会阻止Control-M作业完成。

如果您的BAT等待MSACCESS完成,

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

这可能会缓解(至少是讽刺地)你的问题

答案 1 :(得分:0)

经过一些更多的测试和调查后,问题在.bat中发生了。从未打开和运行MS Access数据库。因此,因为它永远不会启动它永远不会结束或发送错误代码。我正在研究为什么MS Access数据库现在没有运行,这可能会导致另一个问题。

答案 2 :(得分:0)

我有同样的问题。我通过在bat文件末尾添加以下内容解决了我的问题:

exit /b %errorlevel%

答案 3 :(得分:0)

对于Windows批处理清单,在文件末尾添加exit /b %errorlevel%。这将有助于发现脚本已正确处理,并且控制作业将结束/结束。