2

我有一个运行 robocopy 的工作,将文件从 SQL 服务器复制到备份驱动器。

该作业运行 CmdExec 类型的作业以调用运行 robocopy 的批处理文件。我的问题是,虽然文件复制得很好,但错误报告没有得到注册,我通过将源文件更改为伪造的驱动器对此进行了测试。它仍然报告工作成功。我已将其缩小到仅看到 robocopy 并且当它运行该工具时报告成功。例如,如果我只在批处理文件中输入“robocopy”,它仍然会报告成功。

这是我正在运行的代码,试图在发生合法错误时导致错误:

robocopy "C:\backup\" "D:\backup" SET /A errlev="%ERRORLEVEL & 24%" EXIT /B %errlev%

有什么想法吗?

4

3 回答 3

0

我知道这是一个旧帖子,但是

您的代码似乎可以工作,但必须包装在批处理文件中,然后sql需要直接调用批处理文件而不是robocopy

在这里找到了答案

http://weblogs.sqlteam.com/robv/archive/2010/02/17/61106.aspx

于 2010-12-01T22:52:33.940 回答
0

我会看一下:ss64's page on robocopy

另外,我第一次看到这个:RoboCopy GUI。打赌它可能会帮助您生成按预期工作的命令行。

哦,也许我错了 sql 是这个问题的重要组成部分。请参阅此处以获取 SqlTeam.com上的一个非常简洁的指南,看起来它完全回答了您的问题?

于 2010-06-28T14:43:20.477 回答
0

在您的作业步骤中,检查以确保您已在“失败操作”中选择了“退出作业报告失败”。此外,在“成功命令的进程退出代码”下确保您有 0。正如 Maassql 所提到的,还有一些其他成功的“错误代码”,但我会从 0 开始,直到您按预期工作,然后添加在您想算作非错误的附加代码中。

这是假设 SQL 2008。如果您使用不同的版本,提示可能会有所不同。

于 2010-06-28T14:49:06.563 回答