While using "%0\.." to 'sort of' determine the path to the application, it does not work in all circumstances. For example if you open a command window, and navigate to the bin\windows directory, and run Install_LS_as_Service-NT.bat from there, the values entered into the registry for the service are incorrect as follows:
Parameters\AppDirectory = Install_LS_as_Service-NT.bat\..
Parameters\Application = Install_LS_as_Service-NT.bat\..\LS.bat
obviously that won't work.
Now if you double click Install_LS_as_Service-NT.bat from windows explorer, you'll end up with this (which does work - although I wouldn't call this a very elegant solution - having the script filename in the path):
Parameters\AppDirectory = C:\Lightstreamer\bin\windows\Install_LS_as_Service-NT.bat\..
Parameters\Application = C:\Lightstreamer\bin\windows\Install_LS_as_Service-NT.bat\..\LS.bat
Seems like the Install_LS_as_Service-NT.bat scrip needs some work.
What really needs to be in the Registry is (to be nice and clean):
Parameters\AppDirectory = C:\Lightstreamer\bin\windows
Parameters\Application = C:\Lightstreamer\bin\windows\LS.bat
This can be accomplished by changing the script as follows:
@echo off
setlocal
rem
rem NSSM Lightstreamer NT service install script
rem
if "%OS%"=="Windows_NT" goto nt
echo This script only works with NT-based versions of Windows.
goto :end
:nt
echo Attention Windows Vista and Windows 7 users, this
echo script must be run as Administrator.
echo Once the service is installed, do not move nssm*.exe files!
echo ...
echo Please check the output below
echo ...
rem Remove the service
if "%PROCESSOR_ARCHITECTURE%" == "AMD64" goto amd64nssm
goto x86nssm
:x86nssm
%~dp0\nssm.exe install Lightstreamer %~dp0%LS.bat run
goto :startserv
:amd64nssm
%~dp0\nssm_x64.exe install Lightstreamer %~dp0%LS.bat run
goto :startserv
:startserv
net start Lightstreamer
:end
pause
And now will work from either the command window, or windows explorer.