2012-03-08 66 views
2

我已经开始使用Doxygen来记录我团队的项目源代码(我们有C#,Objective-C和Android/Java项目)。我编写了一个Windows批处理脚本,该脚本检出每个项目的最新中继版本,并使用命令行Doxygen生成HTML文档站点并发布到IIS 7已经托管的本地文件系统上的目录。这个批处理脚本完美地工作,并完成所需的一切,但需要10-20分钟完成。使用Windows任务调度程序启动时,Doxygen没有运行

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

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

其他人是否已成功使用任务计划程序自动化Doxygen?我不知道我在做什么错。接下来我应该寻找什么?

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

回答

3

在批处理文件中,尝试添加doxygen输出的重定向到日志文件。然后通过调度程序运行它并查看生成的输出。如果doxygen在运行时遇到错误,应该在日志文件中看到它。

doxygen doxyfile > doxygen.log 2>&1 

另外,还要确保你的bat文件运行正常,即使从其他目录不到哪里doxygen的东东所在的一个调用。当通过任务调度运行,我认为,在当前目录将是C:\ Windows \ System32下,那么试试这个:

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

如果让你有解决这些问题的路径错误。

+0

我添加了您建议的内容,并创建了doxygen.log文件,但是一旦任务完成,它就会变为空。我不认为工作目录很重要,因为我对所有的东西都使用了绝对文件路径,但是我从一个不同的工作目录手动在CMD中运行它,并且它工作正常。现在我将一个> batchLog.log添加到计划任务的参数中,然后我会看一看。 – 2012-03-08 19:18:03

+1

我的例子只是重定向了正常输出,错误输出仍然丢失。上面加上'2>&1'来查看我的更新。这也将包括日志中的stderr输出。 – 2012-03-08 19:35:06

+0

非常感谢,让它工作!问题是,当我登录时,doxygen的安装路径是我PATH的一部分,但显然不是任务调度程序中PATH的一部分,所以无法找到该程序。我在批处理中将其替换为doxygen.exe的完整路径,现在它可以工作。 – 2012-03-08 19:58:37

相关问题