中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-30 12:17
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,279 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]数值计算的批处理输入08和09提示无效数字
可打印版本  923 / 8
第1楼 ybgts 发表于 2009-02-10 00:34
新手上路 发帖 8 积分 8
[求助]数值计算的批处理输入08和09提示无效数字
在下有个问题,可烦死了,请大家帮帮我

批命令如下:


问题:输入任何数值都能正常显示出来,但偏偏输入08或09这两个数值就出问题!
提示为:无效数字.数字常数只能是十进制.............

而输入8或9就没问题,但我要前面的0

谢谢帮忙!!

───────────────── 版务记录 ─────────────────
执行:HAT
操作:在帖子标题中增加搜索关键字;代码加code标签
说明:原标题"为什么偏偏不能输入08和09?"不利于论坛搜索
处罚:论坛新人免于积分处罚
提示:建议阅读以下帖子
{1415}提问的智慧
{7326}论坛新手必读,所有人的基本行为准则
{22703}请不要做浮躁的人
{27314}反面教材:本论坛“精彩”标题小集
{32667}愤怒:那些连标题都写不清楚的人们啊,你们醒醒吧
{32825}本版严厉整顿烂帖
───────────────── 版务记录 ─────────────────


[ Last edited by HAT on 2009-2-10 at 00:55 ]
第2楼 HAT 发表于 2009-02-10 00:50
版主 发帖 5,017 积分 9,023
set的帮助里面有讲解,批处理认为0开头的数字是八进制。
第3楼 ybgts 发表于 2009-02-10 00:59
新手上路 发帖 8 积分 8
哦!原来是这样!
那有方法解决我这个问题吗?我必须要用08和09,谢谢啊!
第4楼 netbenton 发表于 2009-02-10 01:22
银牌会员 发帖 752 积分 1,916 来自 广西
一位数:08 09
可以这样
set /a var2=0x%var%+101

二位数:018 019
可以这样
set /a var2=1%var%-1000+101

三位数:0118 0119
可以这样
set /a var2=1%var%-10000+101

如果随机的,前有N个0,就麻烦一点:

:lp
if '%var:~0,1%=='0 set var=%var:~1%&goto :lp
set /a var2=%var%+101

当然,这样,var原来的值就被破坏了,去掉了0

[ Last edited by netbenton on 2009-2-11 at 17:21 ]
第5楼 HAT 发表于 2009-02-10 02:41
版主 发帖 5,017 积分 9,023
第6楼 313885174 发表于 2009-02-11 18:57
中级用户 发帖 100 积分 206
set vara=%var:~1,32%
最高精确是32位
前面多2个0要怎么解决呢?
要是N个0呢?
第7楼 netbenton 发表于 2009-02-11 19:21
银牌会员 发帖 752 积分 1,916 来自 广西
:lp
if '%var:~0,1%=='0 set var=%var:~1%&goto :lp
set /a var2=%var%+101
第8楼 HAT 发表于 2009-02-11 20:04
版主 发帖 5,017 积分 9,023
Re 6楼
5楼的提供的帖子里面有方法,再仔细看看吧。
第9楼 313885174 发表于 2009-02-12 12:13
中级用户 发帖 100 积分 206
.......好像楼上的方法可以用

[ Last edited by 313885174 on 2009-2-12 at 12:17 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023