Синтаксическая ошибка в операторе if. Не ожидая скобки - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь создать пакетный скрипт для создания пользователей для Windows 10. Но когда я его выполняю, он возвращает синтаксическую ошибку, которую я не понимаю. Вот код:

CLS

SETLOCAL EnableDelayedExpansion
:PREG
SET /P nUser=Introduzca el numero de usuarios a crear: 

echo %nUser%| findstr /r "^[1-9][0-9]*$">nul

IF ERRORLEVEL 1 (
    ECHO No se ha introducido una cantidad correcta de usuarios a crear. Se introdujo %nUser%
    ECHO %TIME%;%DATE%;No se ha introducido una cantidad correcta de usuarios a crear. Se introdujo %nUser% >> ERRORUSER.LOG
    GOTO :PREG
)

IF %nUser% LSS 3 (

    ECHO La cantidad introducida no puede ser menor de 3.
    ECHO %TIME%;%DATE%;La cantidad introducida no puede ser menor de 3. >> ERRORUSER.LOG
    GOTO :PREG

) ELSE (

    IF %nUser% GTR 20 (

        ECHO La cantidad introducida no puede ser mayor de 20
        ECHO %TIME%;%DATE%;La cantidad introducida no puede ser mayor de 20. >> ERRORUSER.LOG
        GOTO :PREG

    ) ELSE (

        FOR /F %%A IN ('wmic useraccount get name ^| FINDSTR Alumno') DO (
            SET nombre=%%A
        )

        ECHO !nombre!

        IF "%nombre%" == "" (

            FOR /L %%i (1, 1, %nUser%) DO (
                SET CON=Abcd%%i
                SET ALUMNO=Alumno%%i
                NET USER /ADD !ALUMNO! !CON!

                ECHO Alumno: !ALUMNO!; Contraseña !CON!. >> SALIDACLAVE.TXT
            )

        ) ELSE (

            SET NUM=!nombre:~6,100!
            ECHO !NUM!

            SET /A AUX=!NUM! + 20

            FOR /L %%i (!NUM!, 1, %AUX%) DO (
                ECHO %%i
            )
        )
    )
)


ENDLOCAL

Ошибка заключается в следующем:

(1 was unexpected at this time.

Используя ECHO, я пришел к выводу, что ошибка возникает в том случае, если я проверяю, что переменная меньше 3. Однако я не могу увидеть, где ошибка.

Заранее спасибо.

...