Войти

Показать полную графическую версию : Ошибка синтаксиса в if


Test_CMD
12-11-2016, 18:42
Делаю небольшой батник и понадобилось использовать цикл if

set /p ls="Choose language:"
if "%ls%"=="ru"(

net user Администратор /active:yes
@:Назначаем ему пароль
net user Администратор 1234
@:Создаем пользователя User
net user User /add
@:Назначаем его админом
net localgroup Администраторы User /add

) else (
@:Активируем встроенного админа
net user Administrator /active:yes
@:Назначаем ему пароль
net user Administrator 1234
@:Создаем пользователя User
net user User /add
@:Назначаем его админом
net localgroup Administrators User /add
)


Ругается на неправильный синтаксис, но я уже тысячу раз все перепроверил и не могу найти ошибку, помогите, пожалуйста

alpap
12-11-2016, 19:24
if "%ls%"=="ru"пробел(

Iska
12-11-2016, 20:11
Test_CMD, можете использовать и такой код, независимо от языка:
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=" %%i in (
`wmic.exe UserAccount where "LocalAccount=TRUE AND SID LIKE 'S-1-5-21-%%-500'" get Name /value ^| find.exe /i "Name"`
) do set sAdmin%%i

if defined sAdminName (
net.exe user %sAdminName% 1234 /active:yes
)

for /f "usebackq delims=" %%i in (
`wmic.exe Group where "LocalAccount=TRUE AND SID = 'S-1-5-32-544'" get Name /value ^| find.exe /i "Name"`
) do set sAdminGroup%%i

if defined sAdminGroupName (
net.exe user User /add
net.exe localgroup %sAdminGroupName% User /add

)

endlocal
exit /b 0

megaloman
13-11-2016, 15:51
Test_CMD, Кроме того, что уже указал alpap, конструкция типа @: Тра ля ля , повторенная много раз, приведёт к ошибке. Замените её на rem Тра ля ля




© OSzone.net 2001-2012