当应用程序作为 windows 服务执行时,.bat 文件不是 运行

.bat file not running when executed by app as windows service

所以,我有这个用第 4 维语言编写的客户端-服务器应用程序,它 运行 是一项服务,因此如果服务器出现问题,它会自动重新启动。这种语言有一个内置功能,允许您 运行 cmd 命令,我在同一文件夹中有另一个 java 应用程序,负责发送电子邮件,这是我的服务器端应用程序无法处理的。我们使用命令从 cmd 中 运行ning 这个 jar 并从那里发送参数,创建和 xml 从中创建一个 html 并通过电子邮件发送它。问题是当我 运行 这个命令与应用程序 运行 宁作为服务时,命令根本不 运行,但是,如果我 运行 应用程序正常,它像魅力一样工作,没有任何问题。

一开始我以为可能是路径问题,所以我把所有的路径都设置成绝对的,使用完整的路由,但是还是不行。我还尝试将命令导出为 bat 并手动 运行ning 它,在与服务器完全相同的路径中,它工作得很好。我想也许服务需要某种管理员权限,所以我从服务中以管理员身份启动它,但它没有任何改变。

服务是否有某种限制,不允许应用程序执行外部命令?如果是这样,有没有办法绕过这个限制?

好吧,当它被服务 运行 时我无法让它工作,所以我用服务使用的命令制作了一个 bat 并将其粘贴到 Windows 启动文件夹中,所以它在 windows 启动时“手动打开”。这不是真正的答案,而是需要使用该服务的解决方法。