Windows服务将输出写入文件

时间:2014-10-06 06:29:56

标签: windows batch-file service output

我有以下批处理脚本:

echo %time% >> C:\file.txt
C:\MyProgram\program.exe /arg1 >> C:\file.txt
echo ------- >> C:\file.txt

我用

创建了一项服务
sc create ProgramRun type= own start= auto binPath= "cmd /c cd /d c:\MyProgram\ && start script.bat"

重新启动后,在file.txt我打印了正确的时间,但没有我的程序输出。在该计划中,我有一些简单的printf

如何在不编辑程序的情况下将输出写入文件?

1 个答案:

答案 0 :(得分:1)

作为Windows服务,您的程序正在本地系统帐户的上下文中运行,该帐户可能没有正确启动和运行程序所需的权限。尝试编辑服务并setting the Log On credentials到您知道可以正确执行程序的Windows帐户。

此外,虽然Windows服务控制管理器(SCM)将很乐意启动您的批处理文件,但报告的结果将始终失败,特别是"错误1053:服务未响应启动或控制及时提出要求" 。这是因为您的批处理文件无法与SCM通信!看看微软的免费(和基本)Srvany "service wrapper"来避免这个问题。