![]() |
中国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 |