为何在bat脚本中,08和09计算时被视为非法八进制数字?

2026-04-10 12:401阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计366个文字,预计阅读时间需要2分钟。

为何在bat脚本中,08和09计算时被视为非法八进制数字?

判断时间间隔是否在特定范围内,可以使用以下代码:

bash设置时间变量set XTHH=%time:~0,2%set XTMM=%time:~3,2%

计算时间间隔set JKSJ=%XTHH%%XTMM%

判断时间间隔if %JKSJ% leq 0830 (echo 11111111111111) else ( if %JKSJ% geq 1730 (echo 2222222222) else (echo 333333333333333))

这段代码首先提取当前时间的时和分,然后计算它们之间的间隔。根据这个间隔,输出相应的数字。如果时间间隔小于0830,输出11111111111111;如果时间间隔大于或等于1730,输出2222222222;否则,输出333333333333333。

为何在bat脚本中,08和09计算时被视为非法八进制数字?

批处理BAT中怎样进行时间间隔的判断?

set XTHH=%time:~0,2% set XTMM=%time:~3,2% set JKSJ=%XTHH%%XTMM% if %JKSJ% leq 0830 ( echo 11111111111111 ) else ( if %JKSJ% geq 1730 ( echo 2222222222 ) else ( echo 333333333333333 ) )

实现功能:JKSJ(0830<=JKSJ<=1730)时,输出333333,否则输出其它(111111或2222222222)。
JKSJ小于等于0830时,输出111111111111,JKSJ大于等于1730时输出2222222222,否则输出3333333333

问题:监控时间为0510-0726时,显示的不对。。存在BUG。。。按理来说显示111111,现在却显示33333,是不是要经过什么特殊处理呢?请教各位前辈。。。

下面就是针对08和09会被看做非法八进制数字的解决方法

@echo off set XTHH=%time:~0,2% set XTMM=%time:~3,2% set JKSJ=%XTHH%%XTMM% if 1%JKSJ% leq 10830 ( echo 11111111111111 ) else ( if 1%JKSJ% geq 11730 ( echo 2222222222 ) else ( echo 333333333333333 ) ) pause

说明

0开头的数字会被BAT认为是八进制的数字,前面加个1可以避免此问题。

本文共计366个文字,预计阅读时间需要2分钟。

为何在bat脚本中,08和09计算时被视为非法八进制数字?

判断时间间隔是否在特定范围内,可以使用以下代码:

bash设置时间变量set XTHH=%time:~0,2%set XTMM=%time:~3,2%

计算时间间隔set JKSJ=%XTHH%%XTMM%

判断时间间隔if %JKSJ% leq 0830 (echo 11111111111111) else ( if %JKSJ% geq 1730 (echo 2222222222) else (echo 333333333333333))

这段代码首先提取当前时间的时和分,然后计算它们之间的间隔。根据这个间隔,输出相应的数字。如果时间间隔小于0830,输出11111111111111;如果时间间隔大于或等于1730,输出2222222222;否则,输出333333333333333。

为何在bat脚本中,08和09计算时被视为非法八进制数字?

批处理BAT中怎样进行时间间隔的判断?

set XTHH=%time:~0,2% set XTMM=%time:~3,2% set JKSJ=%XTHH%%XTMM% if %JKSJ% leq 0830 ( echo 11111111111111 ) else ( if %JKSJ% geq 1730 ( echo 2222222222 ) else ( echo 333333333333333 ) )

实现功能:JKSJ(0830<=JKSJ<=1730)时,输出333333,否则输出其它(111111或2222222222)。
JKSJ小于等于0830时,输出111111111111,JKSJ大于等于1730时输出2222222222,否则输出3333333333

问题:监控时间为0510-0726时,显示的不对。。存在BUG。。。按理来说显示111111,现在却显示33333,是不是要经过什么特殊处理呢?请教各位前辈。。。

下面就是针对08和09会被看做非法八进制数字的解决方法

@echo off set XTHH=%time:~0,2% set XTMM=%time:~3,2% set JKSJ=%XTHH%%XTMM% if 1%JKSJ% leq 10830 ( echo 11111111111111 ) else ( if 1%JKSJ% geq 11730 ( echo 2222222222 ) else ( echo 333333333333333 ) ) pause

说明

0开头的数字会被BAT认为是八进制的数字,前面加个1可以避免此问题。