Я пытаюсь создать пакетный скрипт для создания пользователей для 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. Однако я не могу увидеть, где ошибка.
Заранее спасибо.