首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用命令提示符或批处理文件检查用户是否存在?

如何使用命令提示符或批处理文件检查用户是否存在?
EN

Stack Overflow用户
提问于 2019-10-29 20:08:54
回答 2查看 6.6K关注 0票数 1

我正在尝试创建一个删除用户的脚本。我想检查输入的用户是否存在,这样我就可以说它已删除或该用户不存在。

我已经尝试了一些我以前在网上找到的东西,但都不起作用。这就是我到目前为止所拥有的。

代码语言:javascript
复制
: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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-29 20:33:59

1)可以使用net user命令的退出码。如果用户存在,则返回0。%ERRORLEVEL%变量将具有退出代码。

2)为了在命令提示符中获得输入,您应该在/p中使用SET命令。

代码语言:javascript
复制
set /p UserDel=What is the name of the user you want to delete?

所以你的代码应该是这样的:

代码语言:javascript
复制
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
)
票数 0
EN

Stack Overflow用户

发布于 2019-10-29 20:40:25

也许只有这个?

代码语言:javascript
复制
@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)

另一种方法是首先获取用户列表,然后从列表中选择一个用户,这意味着他/她显然是存在的:

代码语言:javascript
复制
@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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58607192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档