【问题标题】:Doxygen not running when started with the Windows task scheduler使用 Windows 任务计划程序启动时 Doxygen 未运行
【发布时间】:2012-03-08 17:26:59
【问题描述】:

我已经开始使用Doxygen 来记录我团队的项目源代码(我们有 C#、Objective-C 和 Android/Java 项目)。我编写了一个 Windows 批处理脚本,它检查每个项目的最新主干版本,并使用命令行 Doxygen 生成 HTML 文档站点并发布到 IIS 7 已经托管的本地文件系统上的目录。此批处理脚本运行良好,可以完成所需的一切,但需要 10 到 20 分钟才能完全运行。

现在我正在尝试使流程自动化,以便它在每天结束时运行。我添加了一个计划任务,它只是运行批处理脚本。除了 Doxygen 部分之外,脚本的每个部分似乎都可以工作。我可以登录到机器并观察文件系统,并看到工作副本被顺利签出并且清理工作正常。但是它从不生成 Doxygen HTML 输出。 Doxygen 配置使用的输出/目标目录每次都将保持为空。我没有发现任何类型的错误消息(在计划任务和 eventvwr 中)。无论我让任务调度程序自行启动它还是告诉它现在运行任务,它都不起作用。如前所述,我可以双击批处理文件并正常运行它,这样一切正常。

该过程在我们的开发服务器上完成,它是运行 Windows Vista Business 32 位的旧戴尔工作站。我在“系统”帐户上运行了计划任务,虽​​然我也尝试了“本地服务”和我自己的 Active Directory 域帐户(这是此服务器上的管理员),但它仍然无法正常工作。

有没有其他人成功地使用任务调度程序来自动化 Doxygen?我不知道我做错了什么。接下来我应该寻找什么?

如有必要,我可以发布我的批处理文件和 Doxygen 配置文件的稍微匿名的版本。

【问题讨论】:

    标签: windows batch-file task doxygen scheduler


    【解决方案1】:

    在您的批处理文件中,尝试将 doxygen 输出重定向添加到日志文件。然后通过调度程序运行它,看看生成了什么输出。如果 doxygen 在以这种方式运行时遇到错误,您应该在日志文件中看到它。

    doxygen doxyfile > doxygen.log 2>&1
    

    还要确保您的 bat 文件正确运行,即使是从另一个目录调用,而不是 doxygen 文件所在的目录。通过任务调度器运行时,我认为当前目录是c:\windows\system32,所以试试这个:

    c:\windows\system32>c:\path\to\batchfile\mybatch.bat
    

    如果出现路径错误,您必须修复它们。

    【讨论】:

    • 我添加了您的建议并创建了 doxygen.log 文件,但是一旦任务完成,它就为空。我认为工作目录并不重要,因为我在所有内容上都使用了绝对文件路径,但是我在 CMD 中从不同的工作目录手动运行它并且它运行良好。现在我在计划任务的参数中添加了一个 >batchLog.log,我来看看。
    • 我的例子只是重定向了正常输出,错误输出仍然丢失。请参阅上面添加了2>&1 的更新。这也将在日志中包含 stderr 输出。
    • 非常感谢,成功了!问题是当我登录时 doxygen 的安装路径是我的 PATH 的一部分,但显然不是任务调度程序中 PATH 的一部分,因此它无法找到该程序。我在批处理中用 doxygen.exe 的完整路径替换了它,它现在可以工作了。
    猜你喜欢
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    相关资源
    最近更新 更多