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:

Code:
@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.