I’m using the batch script below and get an error
( was unexpected at this time.
I know that the problem is in the first line but I don’t understand what is wrong.
Any ideas ?
script:
IF [%1]==[] (
:LOOP1
SET /P isDefault=Value Missing, do you want to use default values [1,1,10,Local Area Connection 2]?[y/n]
IF %isDefault%==y (
SET from=1
SET step=1
SET to=10
SET lan="Local Area Connection 2"
GOTO :USERLOOP
)
IF %isDefault%==n GOTO :END
GOTO :LOOP1
)
Actually, the problem is not on the first line.
The problem is that
cmddoes variable substitution immediately when it parses theIFstatement, including its body. Therefore the line:is problematic because
isDefaultisn’t set when the outerIFstatement is parsed, so it becomes:and hence you get the error about
(being unexpected. You can get around this by enabling the command extension (SETLOCAL ENABLEDELAYEDEXPANSION) for delayed environment variable expansion (seeset /?for details). You also can rewrite your script:(I made some other changes, such as using the built-in
:EOFlabel instead of:END.)