Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Batch file Error : "Files was unexpected at this time."

Tags:

batch-file

cmd

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
like image 398
prashanthkr08 Avatar asked Dec 06 '25 17:12

prashanthkr08


2 Answers

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"
like image 74
dbenham Avatar answered Dec 09 '25 18:12

dbenham


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
like image 33
foxidrive Avatar answered Dec 09 '25 17:12

foxidrive



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!