我有以下批处理脚本:
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
如何在不编辑程序的情况下将输出写入文件?
答案 0 :(得分:1)
作为Windows服务,您的程序正在本地系统帐户的上下文中运行,该帐户可能没有正确启动和运行程序所需的权限。尝试编辑服务并setting the Log On credentials到您知道可以正确执行程序的Windows帐户。
此外,虽然Windows服务控制管理器(SCM)将很乐意启动您的批处理文件,但报告的结果将始终失败,特别是"错误1053:服务未响应启动或控制及时提出要求" 。这是因为您的批处理文件无法与SCM通信!看看微软的免费(和基本)Srvany "service wrapper"来避免这个问题。