楼 主
[求助]数值计算的批处理输入08和09提示无效数字
发表于 2009-02-10 00:34 · 中国 广东 中山 电信
新手上路
★
积分 8
发帖 8
注册 2008-12-13 15:08
17年会员
UID 133749
性别 男
状态 离线
在下有个问题,可烦死了,请大家帮帮我
批命令如下:
@echo off
set /p var=请输入一个数值:
echo %var% >1.txt
set /a var2=%var%+101
echo %var2% >>1.txt
pause
问题:输入任何数值都能正常显示出来,但偏偏输入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 楼
发表于 2009-02-10 00:50 · 中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
set的帮助里面有讲解,批处理认为0开头的数字是八进制。
第 3 楼
发表于 2009-02-10 00:59 · 中国 广东 中山 电信
新手上路
★
积分 8
发帖 8
注册 2008-12-13 15:08
17年会员
UID 133749
性别 男
状态 离线
哦!原来是这样!
那有方法解决我这个问题吗?我必须要用08和09,谢谢啊!
第 4 楼
发表于 2009-02-10 01:22 · 中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
一位数: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 楼
发表于 2009-02-10 02:41 · 美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
第 6 楼
发表于 2009-02-11 18:57 · 中国 江西 南昌 电信
中级用户
★★
积分 206
发帖 100
注册 2007-07-09 20:51
18年会员
UID 93566
性别 男
状态 离线
set vara=%var:~1,32%
最高精确是32位
前面多2个0要怎么解决呢?
要是N个0呢?
第 7 楼
发表于 2009-02-11 19:21 · 中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
:lp
if '%var:~0,1%=='0 set var=%var:~1%&goto :lp
set /a var2=%var%+101
第 8 楼
Re 6楼
发表于 2009-02-11 20:04 · 中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
第 9 楼
发表于 2009-02-12 12:13 · 中国 江西 南昌 电信
中级用户
★★
积分 206
发帖 100
注册 2007-07-09 20:51
18年会员
UID 93566
性别 男
状态 离线
.......好像楼上的方法可以用
[
Last edited by 313885174 on 2009-2-12 at 12:17 ]
论坛跳转: