批处理高手请进
这个对不对?ECHOOFFSETUSERCHOICE=请输入密码IF"USERCHOICE"==123(我的密码)GOTOAECHO密码错误PAUSEEXIT:ASTAR...
这个对不对?
ECHO OFF
SET USERCHOICE = 请输入密码
IF "USERCHOICE" == 123(我的密码) GOTO A
ECHO 密码错误
PAUSE
EXIT
:A START … 展开
ECHO OFF
SET USERCHOICE = 请输入密码
IF "USERCHOICE" == 123(我的密码) GOTO A
ECHO 密码错误
PAUSE
EXIT
:A START … 展开
3个回答
展开全部
一些细节问题
1.第一句echo off之前要加@,即
@echo off,否则这句有回显
2.不要随便加空格,批处理不会自动去掉空格
比如set a=123是将变量"a"赋值为"123"
但是set a = 123的效果是将变量"a "赋值为" 123"
3.批处理中其实没有真正的变量,而是类似于vc中的宏
在执行时,其实是由cmd将定义过的变量置换为定义的值,然后再执行
调用变量的格式是两边加%
以下面两句为例:
set a=123
if %a%==123 echo 相等!
他的实际执行过程是:
a.将a的值定义为123
b.将if语句中的%a%替换成定义过的值
c.执行替换过的语句 if 123==123 echo 相等!
如果一边加了双引号,而另一边不加的话,肯定是始终不相等的
其实如果不加引号的话是可以比较成功的,但是由于批处理的工作机制,如果a这个变量没有定义过的话,上面的第二句就会变成
if ==123 echo 相等!
这样就违背了if语句的语法,会产生报错
而加上双引号就会变成
if ""=="123 echo 相等!
就可以正常进行比较了
4.set语句
要达到输出一行提示,并且从命令行读取一行输入赋值给变量的效果,必须使用/p参数。正确的语法是
set /p userchoice=请输入密码
注意等号后面无需加空格
5.goto:A和goto A都可以
但是:A必须一句一行
也就是必须写成
:A
start
综上,可以做如下修改
@echo off
set /p userchoice=请输入密码:
if "userchoice"=="123" goto:A
echo 密码错误
pause
exit
:A
start ...
1.第一句echo off之前要加@,即
@echo off,否则这句有回显
2.不要随便加空格,批处理不会自动去掉空格
比如set a=123是将变量"a"赋值为"123"
但是set a = 123的效果是将变量"a "赋值为" 123"
3.批处理中其实没有真正的变量,而是类似于vc中的宏
在执行时,其实是由cmd将定义过的变量置换为定义的值,然后再执行
调用变量的格式是两边加%
以下面两句为例:
set a=123
if %a%==123 echo 相等!
他的实际执行过程是:
a.将a的值定义为123
b.将if语句中的%a%替换成定义过的值
c.执行替换过的语句 if 123==123 echo 相等!
如果一边加了双引号,而另一边不加的话,肯定是始终不相等的
其实如果不加引号的话是可以比较成功的,但是由于批处理的工作机制,如果a这个变量没有定义过的话,上面的第二句就会变成
if ==123 echo 相等!
这样就违背了if语句的语法,会产生报错
而加上双引号就会变成
if ""=="123 echo 相等!
就可以正常进行比较了
4.set语句
要达到输出一行提示,并且从命令行读取一行输入赋值给变量的效果,必须使用/p参数。正确的语法是
set /p userchoice=请输入密码
注意等号后面无需加空格
5.goto:A和goto A都可以
但是:A必须一句一行
也就是必须写成
:A
start
综上,可以做如下修改
@echo off
set /p userchoice=请输入密码:
if "userchoice"=="123" goto:A
echo 密码错误
pause
exit
:A
start ...
展开全部
ECHO OFF
SET/P USERCHOICE = 请输入密码
IF "USERCHOICE"=="123" GOTO A
ECHO 密码错误
PAUSE 1>nul 2>nul
EXIT
:A
START …
SET/P USERCHOICE = 请输入密码
IF "USERCHOICE"=="123" GOTO A
ECHO 密码错误
PAUSE 1>nul 2>nul
EXIT
:A
START …
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个才对!
@ECHO OFF
SET/P USERCHOICE = 请输入密码
IF "%USERCHOICE%"=="123" GOTO A
ECHO 密码错误
PAUSE >nul
EXIT
:A
START …
@ECHO OFF
SET/P USERCHOICE = 请输入密码
IF "%USERCHOICE%"=="123" GOTO A
ECHO 密码错误
PAUSE >nul
EXIT
:A
START …
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询