我有一个映射网络驱动器的.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也没有显示任何类型的退出代码被发回。
发布于 2013-04-15 22:54:35
经过更多的测试和调查,这个问题早在.bat中就出现了。MS Access数据库从未打开和运行过。因此,由于它从未启动,因此它从未结束或发送错误代码。我正在研究为什么MS Access数据库现在没有运行,这可能会导致另一个问题。
发布于 2013-04-04 23:46:49
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这可能会缓解(至少是悄悄地)你的问题。
发布于 2019-08-22 03:38:03
我也有同样的问题。我通过在bat文件的末尾添加以下内容来解决我的问题:
exit /b %errorlevel%https://stackoverflow.com/questions/15813159
复制相似问题