我正在为局域网联网计算机批量制作聊天风格系统。 我想检查用户名是否被采用,如果不允许它被选中,我如何检查用户在这一行输入的内容(set/p name2 =) 我已经在测试中试过了文件,但不能得到它的工作检查用户输入是否在txt文件中,批次为
:startup
set "fail="
set "name2="
set /p "name2=Enter Your Username: "
cls
findstr /b /e /l /c:"%name2%" <"Users.twml" >nul || set fail=1
if defined fail (
goto nope
)
:yes
cls
echo yes, you can use that
echo >> Users.twml %name2%
pause
goto endoftest
:nope
cls
echo thats taken try again
ping locahost -n 3 >nul
goto startup
问题是它总是去,不考虑名称不采取。 Users.twml文件被创建,如果我手动放置:是的,它将在用户选择名称后加载它将名称保存到文件。
我想要的是:用户选择名称,它检查它是否在文件中(采取)如果是重试与goto启动,如果没有采取,将其写入文件并继续。最好用一个goto部分命令,所以我可以指定到哪儿去......
上面的代码块是什么,我需要^^^
帮助下的东西是什么,我目前使用和它的作品只是没有名称验证。
下面是使用名称的选择是不工作的名义验证
:startup
cls
echo Pick A UserName
echo 1-16 Character limit.
set /p name2=
if "!name2!" == "" goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if not "!name2:~16!" == "" goto over
REM continues on after name picked if matches above requirements with stuff below
echo >> Connected.twml [System] %computername%:%username% Has joined as: %name2%
echo >> Directory.twml [System] %name2% Has joined the chat.
goto chat
块我现在有这就是我想要去给你一个视觉的想法。 ,目前正在不起作用
:startup
cls
echo Pick A UserName
echo 1-16 Character limit.
set "fail="
set /p name2=
if "!name2!" == "" goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if not "!name2:~16!" == "" goto over
REM all the above works, now lets try to check if its taken
findstr /b /e /l /c:"%name2%" <"Users.twml" >nul || set fail=1
if defined fail (
goto nope
)
REM continues on after name picked if matches above requirements with stuff below
echo >> Connected.twml [System] %computername%:%username% Has joined as: %name2%
echo >> Directory.twml [System] %name2% Has joined the chat.
echo >> Users.twml %name2%
goto chat
:nope
cls
echo thats taken try again
ping locahost -n 3 >nul
goto startup
这是users.twml内部看起来,如果:如果是正确
username1
username2
username3
username4
跑@@@@@@@@@@新的编辑在这里吹@@@@@@@@@@@@@@@@@@@@@@
所有固定和工作我用%user2%在文本文件和%name2%在主文件中,所以难怪他们不一起工作。还是不明白FINDSTR,但...这就是为什么你不以低睡眠凌晨1时写任何形式的代码我猜:)
这将是明智的,提供您'Users.twml'文件的例子,因为它表明类似XML的标记语言。 – Compo
添加的文件的外观,它只是由一批行添加到文件>>%twml%回声%用户2% –