Apache 在安装路径中创建带有空格的服务
我正在使用Apache的ProCurn创建一个Windows服务,但很难正确设置它。我正在使用批处理文件来执行procrun安装。我的问题有两个方面Apache 在安装路径中创建带有空格的服务,apache,batch-file,windows-services,procrun,Apache,Batch File,Windows Services,Procrun,我正在使用Apache的ProCurn创建一个Windows服务,但很难正确设置它。我正在使用批处理文件来执行procrun安装。我的问题有两个方面 我无法创建名称中带有空格的服务。此示例取自Apache,正在设置prunsrv服务安装: prunsrv //IS//TestService --DisplayName="Test Service" \ --Install=prunsrv.exe --Jvm=auto --StartMode=jvm --StopMode=jvm \
prunsrv //IS//TestService --DisplayName="Test Service" \
--Install=prunsrv.exe --Jvm=auto --StartMode=jvm --StopMode=jvm \
--StartClass=org.apache.SomeStartClass --StartParams=arg1;arg2;arg3 \
--StopClass=org.apache.SomeStopClass --StopParams=arg1#arg2
我在C:\Program Files\中的某个位置安装了一个服务,其中有一个空格。我需要--Install路径为“C:\Program Files\prunsrv.exe”,以正确指向正确的路径。如果我没有用引号括起路径:
--Install=C:\Program Files\prunsrv.exe
Windows服务认为安装路径为:
C:\Program
"C:\Program Files\prunsrv.exe"
这是一个无效的位置。当我使用:
--Install="C:\Program Files\prunsrv.exe" (or)
"--Install=C:\Program Files\prunsrv.exe"
Windows服务认为安装路径为:
C:\Program
"C:\Program Files\prunsrv.exe"
…这也是一个无效位置(它会尝试使用引号执行该路径。)
有人知道如何正确安装路径中带有空格的Windows服务吗FOR
循环,可以转换长名称路径:
FOR %%F IN ("C:\Program Files\prunsrv.exe") DO SET prunsrv=%%~sF
prunsrv … --Install=%prunsrv% …
我知道这很古老,但有点不太聪明的解决方案是: 设置JVM\u DLL=“c:\Program Files\Java\jre6\bin\server\JVM.DLL”
prunsrv//是//%SERVICE\u NAME%--Jvm=%Jvm\u DLL%Wow,它将空格转换为FODLERNAME~1/2/etc,更重要的是,它可以工作。非常感谢你。那叫短名字?短名字,是的。转换路径中的每个特定名称的长度不超过8个字符,扩展名最多可为3个字符。请查阅,再次感谢。我从来都不知道寡妇们能做些什么。如果能知道魔法
prunsrv=%%~sF
能做些什么就好了。如果存在任何风险或案例,%%~sF
失败