中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 01:35
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » set /a怎么不显示
可打印版本  1,075 / 8
第1楼 fe19880919 发表于 2010-06-14 01:22
初级用户 发帖 24 积分 27
set /a怎么不显示
如下:
set a=3.
set /a b=a+1
运行显示:运算符不存在。
改成:
set a=3.
set /a b=a+1>nul
运行结果还是运算符不存在。
怎么才能把“运算符不存在”不让电脑显示啊?>nul都不管用了,哪个懂的教下。
第2楼 Hanyeguxing 发表于 2010-06-14 07:22
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂

屏蔽错误输出使用 2>nul
第3楼 jarry0932 发表于 2010-06-14 11:48
初级用户 发帖 122 积分 128
我不知道LZ为什么要对错误的语法再屏蔽错误的提示…批处理不是高级程序设计语言,对变量的引用要加%
第4楼 fe19880919 发表于 2010-06-14 12:03
初级用户 发帖 24 积分 27
回3楼的话:
我弄了一个记录数据的东西,要加入编号。做法如下:
1.先用if判断有没有记录文件,如果没有,设置记录号为0;
2.如果有记录,就设记录里面的第一个数为记录号(取法为%m:~0,1%);
3.记录号到10,也就是两位时,再取一位就会出错,所以我就又加了个判断(
set /a s=%m:~0,2%
if errorlevel 1 goto next

这里用if判断上一个是不是运行成功,当记录号是一位时,是不能成功的,但是当记录号是两位时,就能成功了,就会直接到next。
当然大家哪个有更好的办法的,可以发出来教下我,我也是初学者。
第5楼 fe19880919 发表于 2010-06-14 12:04
初级用户 发帖 24 积分 27
另外谢下Hanyeguxing, 他的办法很好。
第6楼 Hanyeguxing 发表于 2010-06-14 13:13
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
或:

[ Last edited by Hanyeguxing on 2010-6-14 at 13:21 ]
第7楼 fe19880919 发表于 2010-06-14 13:38
初级用户 发帖 24 积分 27
6楼的第二个代码确实好用,比我原来的好多了。不过我用过之后发现了个小问题,因为我的记录号是用1.来写的,用你的set a=%%a得出的结果是1.因为多个.所以下面的计算也会跟着出错。只能用set /a a=%%a,但是又会多出几个显示运算符不存在。
最后的办法是用你教的:set /a a=%%a 2>nul
(2>nul关闭错误回显)
第8楼 Hanyeguxing 发表于 2010-06-14 14:57
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
带点的话:
或:
第9楼 jwm112377 发表于 2010-09-27 17:30
初级用户 发帖 20 积分 25
set不能用在复合语句里面比如if 1==1 set a=2或者for %%i in (a) do set a=2
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023