• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

BAT批处理提取系统时间的实现代码(bug修复)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一般情况下用下面的代码即可,但批处理的默认0开头的数字以为是8进制,导致获取的时间不准确

for /f "tokens=1,2 delims=:" %%i in ('time/t') do (
	set/a xiaos=%%i
	set/a fenz=%%j
)

使用上面的代码提取系统的小时和分钟,原本运行的结果如下:
xiaos=9
fenz=18
但今天提取的却是下面格式(同一台机器,同一个系统):
xiaos=09
fenz=18
由此带来后期计算的错误。

因为接触批处理不久,不知是哪里出了问题?特请教。

bathome的管理员给出的答案

@echo off
for /f "tokens=1,2 delims=:" %%i in ('time /t') do (
    set xiaos=%%i
    set fenz=%%j
)
set xiaos=10%xiaos: =%
set fenz=10%fenz%
set /a xiaos=xiaos%%100
set /a fenz=fenz%%100
echo %xiaos%
echo %fenz%
pause

完美解决。

问题找到了。日期和时间的格式是03,09格式,如果进行数值计算或赋值时,因为是0开头,所以会被认为是八进制数值,当为08,09格式就需要进位,于是就出错了。而07以下不需要进位所以不会出错。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap