Как проверить, существует ли пользователь с помощью командной строки или командного файла? - PullRequest
0 голосов
/ 29 октября 2019

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

Я уже пробовал некоторые предыдущие вещи, которые я нашел в Интернете, но ни одна из них не работает. Это то, что у меня есть.

:DelUser
cls
echo You chose to delete a user
echo ==========================
net user
echo ==========================
set UserDel=What is the name of the user you want to delete?
echo deleting user %UserDel%.....
net user | find /i %UserDel% || goto UserNoExist
net user %UserDel% /delete
echo User %UserDel% is deleted
goto Users

:UserNoExist
echo This user does not exist
pause
goto DelUser

Ответы [ 2 ]

0 голосов
/ 29 октября 2019

может быть, только это?

@echo off & set drop=
set /p "_usern=Enter user to delete: "
for /f "tokens=1" %%i in ('net user ^| find /i "%_usern%"') do set "drop=%%i"
if defined drop (net user %drop% /delete) else (echo %_usern% does not exist)

другой способ - сначала получить список пользователей, а затем выбрать пользователя из списка, что означает, что он / она, очевидно, существует:

@echo off
@for /f "skip=4tokens=1" %i in ('net user') do @echo %I
set /p "_usern=Select user from list to delete: "
net user %_usern% /delete
0 голосов
/ 29 октября 2019

1) Вы можете использовать код выхода команды net user. Если пользователь существует, он возвращает 0. %ERRORLEVEL% переменная будет иметь код выхода.

2) Чтобы получить ввод в командной строке, вы должны использовать команду SET с /p. * 1007. *

set /p UserDel=What is the name of the user you want to delete?

Ваш код должен выглядеть примерно так:

set /p UserDel=What is the name of the user you want to delete?
net user %UserDel%
if %ERRORLEVEL% EQU 0 (     
    net user %UserDel% /delete  
    echo User %UserDel% is deleted
) else (
    echo This user does not exist
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...