![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 03:25 |
共 48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 一个很弱的问题: 运算输出问题? |
| 可打印版本 808 / 7 |
| 第1楼 scriptor | 发表于 2007-01-17 11:07 |
| 银牌会员 发帖 555 积分 1,187 | |
|
一个很弱的问题: 运算输出问题? 在我的批文件中,
set a=234 set /a d=a/3600 set /a f=a%3600 echo %d% echo %f% pause 我的没有正确的输出 全部是0 何故阿? 但是改成这样的话 set a=234 set /a d=a%/3600 set /a f=a%%3600 echo %d% echo %f% pause 他就正确输出了 我也就此说明一个问题,我前次发的一些代码中,又出现 set /a **=xx%/YY set /a **=xx%%ZZ 的地方,有朋友说不对,那么是不是我的机器的问题? 但是我更早的时候,使用的是 set /a **=xx/YY ...... 都是正确的,只是近来,他就不理我了,输出尽是0。 更多的时候,她提示说: 运算符不存在 请高手解释和解决,谢谢了! ─────────────────── 版务记录 ──────────────────── 执行:namejm 原标题:一个很弱的问题 修改后标题:一个很弱的问题: 运算输出问题? 说明:因修改后的标题仍然过于模糊,不便于论坛的搜索和管理,请在三日内修改标题。 处罚:因该用户在论坛里并非新人,理应对本论坛的发帖规定有所了解,故扣除该用户发帖所得 4点积分中的2点。若在本提示发表三日之后尚未作出相应反应,将由版主强制修改标题。 建议:若对本处理有异议,请点这里到意见反馈 & 网友交流 栏目中发帖申辩;若确实属于不当处理, 本人将取消本处理,若有必要,并将采取其他适当的措施来消除对你的不利影响。 ─────────────────── 版务记录 ──────────────────── [ Last edited by namejm on 2007-1-16 at 10:54 PM ] |
|
| 第2楼 scriptor | 发表于 2007-01-17 11:22 |
| 银牌会员 发帖 555 积分 1,187 | |
|
怎么没有人回答阿??
在线等,我急啊!! |
|
| 第3楼 lxmxn | 发表于 2007-01-17 11:26 |
| 版主 发帖 4,938 积分 11,386 | |
|
楼主已经在论坛混了有一段时间了,主题贴的标题还是像个新手,实在不应该。扣几分惩罚。 |
|
| 第4楼 namejm | 发表于 2007-01-17 11:27 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
批处理中,/表示除,%%表示取除法运算结果的余数,%/连用是非法运算。
CMD中,只能准确计算整除的情况,不会显示小数;对小数直接做抛弃处理,所以,小数字除以大数字,结果始终是0。 |
|
| 第5楼 electronixtar | 发表于 2007-01-17 11:32 |
| 铂金会员 发帖 2,672 积分 7,493 | |
第一行,扣1分,我们“必须”回答你么? “在线等”,威胁我们是吧?扣2分 “急”,影响读贴心情,扣1分 总共扣4分,没有意见吧? |
|
| 第6楼 scriptor | 发表于 2007-01-17 11:36 |
| 银牌会员 发帖 555 积分 1,187 | |
Originally posted by namejm at 2007-1-16 22:27: 那又不对了阿 我在批处理中 set a=23432 set /a d=a%/3600 set /a f=a%%12345 输出的是 d=6 f=11087 但是 set /a d=a/3600 set /a f=a%12345 输出就是: d=6 f=0 解释一下? 还有你怎么老是减我的分??~_~ |
|
| 第7楼 namejm | 发表于 2007-01-17 11:53 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
set /a 是一个比较有意思的运算语句,对变量可以不加百分号对而直接引用,比如我们在 for 语句中常用的一句计数语句是 set /a num+=1,展开之后,用 set /a num=num+1 也是可以的。
在CMD中,如果百分号对不匹配的话,就会把其中不匹配的百分号抛弃,比如:set a=123&set b=a%cd,则 echo %b% 的结果是 acd 。 具体到 set /a d=a%/3600 这一句,则会把不匹配的百分号抛弃,把a的值23432带入语句进行运算,结果就是6了。
鉴于你的用户等级已经脱离了新手阶段好一段时间,如果你的标题是能够让人见名知意的,我就不会扣你的分了——不只是针对你一个人,我对本版块里的其他人都是这样。 |
|
| 第8楼 scriptor | 发表于 2007-01-17 12:00 |
| 银牌会员 发帖 555 积分 1,187 | |
|
恩
接受了 ^^ |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |