bat脚本 问题

allex1226 2009-12-28 09:34:46
@echo off
set mm=0
if mm<10
set mm=0!mm!
echo mm
pause

判断 mm是否小于10 ,小于10 则在前面加0,但是上面 程序好像不对?请教各位大侠

...全文
95 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ljc007 的回复:]
引用 3 楼 delphiguy 的回复:
你... 画蛇添足了。:)


你画的根本就不是蛇,按照你的代码,不管变量mm赋值成什么,统统的补零。
[/Quote]

蛇还是蛇,只是有点行为异常。
这样就好了:
if /I %mm% lss 10 set mm=0%mm%

测试是很重要滴。:)
ljc007 2009-12-31
  • 打赏
  • 举报
回复
补零操作,除了比较大小之外,另外一种思路是:
不管三七二十一,先补零再说,然后用set命令截取最后指定位数。
ljc007 2009-12-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hjf8086 的回复:]
@echo off
set /a mm=0
if %mm% less 10 set mm=0%mm%
echo %mm%
pause
[/Quote]

1、数值计算时才用得着set /a,变量赋值时用set即可。
2、比较大小时,应该用lss,而不是less。
ljc007 2009-12-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 delphiguy 的回复:]
你... 画蛇添足了。:)
[/Quote]

你画的根本就不是蛇,按照你的代码,不管变量mm赋值成什么,统统的补零。
  • 打赏
  • 举报
回复
你... 画蛇添足了。:)
hjf8086 2009-12-29
  • 打赏
  • 举报
回复
@echo off
set /a mm=0
if %mm% less 10 set mm=0%mm%
echo %mm%
pause
  • 打赏
  • 举报
回复
if (mm lss 10) set mm=0%mm%

3,424

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧