Sql Agent 找不到指定的文件

Sql Agent 找不到指定的文件

我有一个 SQL 2008 代理作业,只需一步Operating system (CmdExec)

C:\Scripts\Script.cmd

Script.cmd运行CS-脚本

如果我运行C:\Scripts\Script.cmd,一切都会正常显示——我得到了预期的日志输出并echo %ERRORLEVEL%显示 0。

但是,当我通过 SqlAgent 运行它时 - 我得到了预期的日志输出,然后

The system cannot find the file specified.  
Process Exit Code 1.  
The step failed.

日志输出完整且正确,因此运行批处理文件和批处理文件调用的 EXE。CS-Script 执行的最后一件事是:

Console.WriteLine("Exiting at 2009-09-22 16:10:32 with Status {0}", exitCode);
return (int)exitCode;

它会完整地记录在输出中。

找不到什么文件?

答案1

清除 CS-Script 的缓存就解决了问题。Procmon 并没有真正起到帮助作用,但确实显示了对用户缓存文件夹的访问,C:\Users\sql-agent-svc\AppData\Local\Temp\CSSCRIPT\Cache这促使我尝试清除它。

由于它是每个用户的缓存,以管理员身份手动运行 CS-Script 会使用没有问题的不同缓存。

据我了解,缓存只是为了避免重新编译未更改的脚本 - 因此它实际上不应该导致任何问题。但是,删除它并让 CS-Script 重新创建它似乎有效。

相关内容