永发信息网

批处理set /p怎么用

答案:3  悬赏:20  手机版
解决时间 2021-04-28 19:50
批处理set /p怎么用 谁知道啊
最佳答案
echo 等号后是显示在屏幕上的
set /p a=
%a%的值是用户打开批处理需要输入的
全部回答

set /p 参数是让用户自己输入字符

例如:

set /p a=请输入..

if %a%==1 (goto one)

:ONE

echo 输入的是1

pause

可见 /p 参数须和if 条件判断连用

在这里 a 是一个变量

它的值由等号后面的字符决定

而if 判断用户输入的字符是否于设定字符符合

如果符合则执行后面的命令

如果不符合则执行下一行命令

例子: @echo off set var=我是值 echo %var% pause

请看 set var=我是值 ,这就是BAT直接在批处理中设置变量的方法! set 是命令 var是变量名 =号右边的"我是值"是变量的值 在批处理中我们要引用这个变就把var变量名用两个%(百分号)扩起来,如%var%

这种SET语法只能直接在BAT代码的酸前赋予变量的值,有时候我们需要提供一个交互界面,让 用户自己输入变量的值,然后我们在来根据这个值来做相应操作,现在我就来说说这SET的这 种语法,只需要加一个"/P"参数就可以了!

例子: @echo off set /p var=请输入变量的值: if %var% == 1 echo 您输入了 1 ~_~ pause

set /p 是命令语法 var是变量名 =号右边的"请输入变量的值: ",这个是提示语,不是变

量的值了! 运行后,我们在提示语后面直接输入1,就会显示一行您输入了 1 ~_~ ,输入别的就没有任何反

映!

好了,先回顾到这,现在讲SET其他功能

使用set /?查看SET的帮助我们发现SET除了我上面讲的 SET [variable=[string]] SET /P variable=[promptString] 这两种语法外,还有如下几种语法: SET /A expression 环境变量替换已如下增强: %PATH:str1=str2% %PATH:~10,5% %PATH:~-10% %PATH:~0,-2%

这机种语法有什么用处呢?现在我们来一个个讲解他们!

SET /A expression /A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式 评估器很简单并以递减的优先权顺序支持下列操作: () - 分组 ! ~ - - 一元运算符 * / % - 算数运算符 + - - 算数运算符 << >> - 逻辑移位 & - 按位“与” ^ - 按位“异” | - 按位“或” = *= /= %= += -= - 赋值 &= ^= |= <<= >>= , - 表达式分隔符

上面这些是系统帮助里的内容,看着是不是有点晕,没关系我来简单解释一下: set的/A参数就是让SET可以支持数学符号进行加减等一些数学运算!

现在开始举例子介绍这些数学符号的用法: 看例子 这里的例子请直接在CMD下拷贝命令运行,不需要保存为BAT! set /a var=1 + 1 set /a 语法, var变量名 1 + 1 数学式子

拷贝运行后会直接显示一个2,或者运行完后我们输入echo %var%,也是二,这就是 一个简单的加法运算!

set /a var=2 - 1 结果是多少呢?如果你看不到结果就echo %var%..... set /a var=2 * 2 乘法运算 set /a var=2 / 2 除法运算 set /a var=(1+1) + (1+1) 结果等于4 看得懂吧! set /a a=1+1,b=2+1,c=3+1 运行后会显示一个4,但我们用 echo %a% %b% %c%后看结果,会发现其他数学运算也有效果!,这就是"斗"号的 作用! 有时候我们需要直接在原变量进行加减操作就可以用这种语法 set /a var+=1 这样的语法对应原始语法就是set /a var = %var% + 1 都是一样的结果,在原变量的值上在进行数学运算,不过这样写简单一点 在来一个: set /a var*=2 其他都这么用,只要帮助里有这个语法!

另外还有一些用逻辑或取余操作符,这些符号,按照上面的使用方法会报错的

比如我们在CMD里输入set /a var=1 & 1 "与运算",他并不会显示为1,而是报错, 为什么?对于这样的"逻辑或取余操作符",我们需要把他们用双引号引起来,看例子

set /a var= 1 "&" 1 这样结果就显示出来了,其他逻辑或取余操作符用法 set /a var= 1 "+" 1 异运算 set /a var= 1 "%" 1 取模运算 set /a var= 2 "<<" 2 次方运算 set /a var= 4 ">>" 2 这个不太记得数学里的叫法.... 还有几个数学不太行,搞不清楚了....不列出来了, 这些符号也可以用&= ^= |= <<= >>= 这样的简单用法如 set /a var"&=" 1 等于set /a var = %var% "&" 1 注意引号

好符号说到这,现在说%PATH:str1=str2% 这个是替换变量值的内容,看例子 @echo off set a= bbs.verybat.cn echo 替换前的值: "%a%" set var=%a: =% echo 替换后的值: "%var%" pause

对比一下,我们发现他把变量%a%的空格给替换掉了,从这个例子,我们就可以发现 %PATH:str1=str2%这个操作就是把变量%PATH%的里的str1全部用str2替换

比如我们把上面的例子改成这样 @echo off set a=bbs.verybat.cn echo 替换前的值: "%a%" set var=%a:.=伤脑筋% echo 替换后的值: "%var%" pause

解释set var=%a:.=伤脑筋% set命令 var变量名 字a是要进行字符替换的变量的值,"."为要替换的值, "伤脑筋"为替换后的值! 执行后就会把变量%a%里面的"."全部替换为"伤脑筋" 这就是set的随换字符的很好的功能!先讲到这

%PATH:~10,5% 这个什么意思,看例子:

@echo off set a=bbs.verybat.cn set var=%a:~1,2% echo %var% pause

执行后,我们会发现只显示了"bs"两个字母,我们的变量%a%的值不是为bbs.verybat.cn吗 怎么只显示了第2个字母和第3个字母"bs",分析一结果我们就可以很容易看出 %PATH:~10,5%就是显示变量PATH里指定几位的值! 分析set var=%a:~1,2% set命令 var变量值 a要进行字符操作的变量 "1"从变量"a"第几位开始显示 "2"显示几位 和起来就是把变量a的值从第一位开始,把后两位赋予给变量var 就样因该明白了吧~

其他两种语法 %PATH:~-10% %PATH:~0,-2% 他们也是显示指定变量指定几位的值得的意思

%PATH:~-10% 例子

@echo off set a=bbs.verybat.cn set var=%a:~-3% echo %var% pause 这个就是把变量a倒数3位的值给变量VAR

当然我们也可以改成这样 @echo off set a=bbs.verybat.cn set var=%a:~3% echo %var% pause

这个就是把变量a的从第3位开始后面全部的值给变量VAR

%PATH:~0,-2% 例子

@echo off set a=bbs.verybat.cn set var=%a:~0,-3% echo %var% pause 执行后,我们发现显示的是"bbs.verybat",少了".cn" 从结果分析,很容易分析出,这是把变量a的值从0位开始, 到倒数第三位之间的值全部赋予给var

如果改成这样

@echo off set a=bbs.verybat.cn set var=%a:~2,-3% echo %var% pause

------------------------------------

来自“网易博客”

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
旋舞最高是多少?
魔兽世界,太阳井151大魔导师洪流法杖什么属性
我的AVA已经激活了 为什么登陆的时候他提示我
爱你晚安唯美语录经典,女孩每天都在微信朋友
找个黄钻开qq农场,给积分
今年学车模拟试题哪里找?乌兰浩特
兄弟会所我想知道这个在什么地方
手臂莫名的长了个肉疙瘩,不痒不痛的,又不消
买了块原石,用砂轮把外皮磨掉了,求教接下来
汽车有时刚停下过会儿就打不着火,如果启动了
玩DNF 没一会CPU就显示温度增高 该怎么办
谁会修理编织机
求麦拉风春暖花开的主题
高汤汤头啥意思
比负三大比零小的数有什么?
推荐资讯
去WWE要有什么资格?
单选题用草酸的稀溶液或草酸钠的酸性溶液可以
在助学贷款的申请和还贷还息中如何做到诚信守
如何让狗狗快点长啊
为什么我的开心农场加载到72就不动了啊?
CF有战队系统吗
谁又不同于我的NDS模拟器
汉寿汽车总站到湘潭的车是到湘潭哪个站?什么
处女座和水瓶座配吗?
ASP问题,会员管理系统
DNF大将军天空套长长的飘带是什么部位 ?
中专要怎么样才能高考
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?