我需要一个用户输入密码的批处理文件,如果它是正确的,它会映射一个驱动器。如果它是错的,那么它需要回到起点
我有这个
:start
echo Username=****
SET /P password=Please enter the password
IF %password%==password goto map
IF %password%!==!password goto start
:map
NET USE Z: \\server\folder
如果输入的密码正确,则无效,但如果输入的密码错误则无效
任何帮助?
答案 0 :(得分:2)
那是因为检查
if %password%!==!password
永远不会是真的。 if
将两个字符串与==
的每一侧进行比较。问问自己这种情况是否真实; - )
你可能想要
if %password%==password goto map
goto start
代替。 goto map
会跳过下一行,因此不会执行该行,如果条件为false,则会返回start
。
另一种选择是
if %password%==password (goto map) else (goto start)
对于习惯于结构化编程的程序员来说,这可能更为熟悉。
提醒一句:您通常应该引用要检查的字符串以防止输入中的空格:
if "%password%"=="password" ...
答案 1 :(得分:0)
您完全不需要IF %password%!==!password goto start
。如果密码正常,则为goto map
,否则为goto start
。也就是说,如果您将IF %password%!==!password goto start
替换为goto start
,您将获得所需内容。
答案 2 :(得分:0)
@echo off
color 02
set num1=0
set num2=1
set terminator=5
:loop
set /a num1= %num1% + %num2%
if %num1%==%terminator% goto close
goto open
:close
echo %num1%
pause
exit
:open
echo %num1%
goto loop
尝试此代码num1是要递增的数字,num2是添加到num1的值,终止符是num1将结束的值,您可以在此语句中指示终止符的不同值(如果%num1%==%终止符%goto close)这是布尔表达式goto close是进程,如果boolean为true,如果boolean为false,则goto open是进程,如果你是程序员,你只能理解这个过程
如果你理解这些代码,请投票
将其保存为扩展名为.bat的文件名