I am getting the below error when I pass path as my 2nd argument. It looks like problem is with the space.
Files was unexpected at this time
I am executing the batch file with following parameters
services.cmd 2 "C:\Program Files (x86)\folder\Folder\folder\Bin" corp\acct password
CODE:
@echo off
if "%1" == "" goto PARAMS
if "%2" == "" goto PARAMS
if "%3" == "" goto PARAMS
if "%4" == "" goto PARAMS
sc create "<service name>"%1 binpath= "\%2\xxx.exe\" \"xxx.exe.config\""
rem sc config "<service name>"%1 displayname= "<display name>"%1 obj= %3 password= %4 start= auto description= "Runs the service."
goto END
:PARAMS
echo Usage CreateServices.cmd binfoldername binfolderpath username password
:END
You cannot escape quotes within a quoted string. Use %~2 to get rid of the unwanted quotes from a parameter.
Try the following:
sc create "<service name>%~1" binpath= "%~2\xxx.exe" "xxx.exe.config"
As well as Dave's comment, you need tildas in these lines
if "%~1" == "" goto PARAMS
if "%~2" == "" goto PARAMS
if "%~3" == "" goto PARAMS
if "%~4" == "" goto PARAMS
But all you need to check for all four parameters (if all 4 are required) is this:
if "%~4" == "" goto PARAMS
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With