Board logo

标题: 请教使用%time:~0,2%如何补零的问题 [打印本页]

作者: flyhighxu     时间: 2008-3-31 11:20    标题: 请教使用%time:~0,2%如何补零的问题
比如现在系统时间是上午"9:54",我想使用%time:~0,2%来获取时钟值,
我实际是想获取"09",可结果获取的是"9",而假如系统时间是"10:05",
则获取的值为"10",没有问题。
如何让其在"9"前自动补一个零呢?
因为我想让其在任何情况下都占用两个字符。

作者: huahua0919     时间: 2008-3-31 11:43

@echo off
for /f "delims=: tokens=1" %%i in ("%TIME%") DO (
if %%i leq 9 (echo 10以下&&echo 0%%i) else (echo 10以上)
)
pause

作者: bat-zw     时间: 2008-3-31 12:01    标题: 我来凑合下:
@echo off
if %time:~,2% leq 9 (echo 0%time:~1,1%) else (echo %time:~,2%)

另处指出楼上的代码有误,系统在显示小时位时一直是用两位字符的,只不过在小时位只一位数字时前面补了个空格,所以当系统小时位为个位时,用楼上的代码只会显示为0 *。

Last edited by zw19750516 on 2008-3-31 at 12:11 PM ]

作者: flyhighxu     时间: 2008-3-31 12:57
Originally posted by zw19750516 at 2008-3-31 12:01 PM:
@echo off
if %time:~,2% leq 9 (echo 0%time:~1,1%) else (echo %time:~,2%)

另处指出楼上的代码有误,系统在显示小时位时一直是用两位字符的,只不过在小 ...


非常感谢zw19750516,我昨天今天问了两个问题,你都仔细的解答了。
huahua0919的解答也提醒了我另一种处理思路,一并感谢

作者: zh159     时间: 2008-3-31 14:24
简单点的:
set time_=%time:~0,5%&call set time_=%%time_: =0%%
echo %time_%

作者: terse     时间: 2008-3-31 14:48
@echo off
for /f "delims=:" %%i in ('time/t') DO echo %%i
pause>nul

作者: huahua0919     时间: 2008-3-31 18:42
楼上漂亮

作者: bat-zw     时间: 2008-3-31 18:51
强就一个字!!!