这可能不是同一个问题。但是,我发现 procrun 对--StartPath
参数路径周围双引号的解释存在问题。我的安装批处理文件如下所示:
SET ROOTDIR=%~dp0
"%ROOTDIR%prunsrv.exe" install MyServiceName ... --StartPath="%ROOTDIR%" ...
不带引号的路径在%ROOTDIR%
. 为了处理空格,我在路径周围加上了双引号。然后,当我查看注册表时,我可以看到 for 的值Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\MyServiceName\Parameters\Start\WorkingPath
删除了起始引号,但没有删除终止引号,并且该值包括以下所有参数。因此,其他注册表项丢失。
可怕的解决方法是:
- 移动
--StartPath
成为最后一个论点,
- 使用开场报价,但不使用结束报价。
所以批处理文件现在看起来像:
SET ROOTDIR=%~dp0
"%ROOTDIR%prunsrv.exe" install MyServiceName ... ... --StartPath="%ROOTDIR%