批处理搜索相同字符串问题

===============================================@echooff:2echo.请输入用户名set/pinput_user=n... ===============================================
@echo off
:2
echo. 请输入用户名
set/p input_user=
net user|findstr "%input_user%" &&goto 1||goto 2

:1
echo. 找到用户%input_user% & pause & exit

==================================================
上面程序问题是:只要输入一个用户中包含的字母,就可以跳到:1

我的意思是输入的用户名要与系统中完全相同才跳到:1
展开
 我来答
314ccp
2011-11-28 · TA获得超过5625个赞
知道大有可为答主
回答量:1497
采纳率:0%
帮助的人:2159万
展开全部
@echo off
net user|more +4>tmp&set/ptmp=<tmp
for %%i in (%tmp%)do (del tmp 2>nul)&set _%%i="
:2
echo.请输入用户名
set/p input_user=
set _|find/i "_%input_user%=">nul&&goto 1||goto 2
:1
echo.找到用户%input_user% & pause & exit
追问
程序达到了我要求,麻烦解释下:net user|more +4>tmp&set/ptmp=<tmp
解释得好再给30到50分。谢谢了。
追答
1、net user 会显示出所有的账户:
如:
\\PC-8888的用户账户
------------------------------------------
admin Guest cpop
命令成功完成。

2、通过 |more +4 命令将从上面1内容中,
从admin Guest cpop开始到最后的内容输出到tmp文本中。

3、set/p tmp=<tmp就是将tmp文本的第一行内容(也就是admin Guest cpop)输入变量tmp中,以便后面调用不用反复获取。

LS团友给了点提示:
你试试这个:
@echo off
set /p u=请输入用户名:
net user|(findstr/i /b -c:"%u% ")&&echo 有%u%||(
net user|(findstr/i -c:" %u% ")&&echo 有%u%||echo 没有%u%)
)
pause
sudoku52
2011-11-29 · TA获得超过7万个赞
知道大有可为答主
回答量:1.2万
采纳率:82%
帮助的人:4917万
展开全部
使用-c参数 ,前后加上空格
net user|findstr -c:" %input_user% " &&goto 1||goto 2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式