我需要从批处理脚本中访问当前时间。输入时间在 cmd 中,我得到如下信息:
The current time is: 16:58:03.98
Enter the new time:
我需要的不是这些,而是将小时、分钟和秒放在不同的存储桶中,然后以任意方式进行处理。换句话说,我正在寻找一个返回小时值的函数,以便我可以将其分配给变量,如下所示:
var hour = GetCurrentHour()
谢谢!
答案1
FOR /F "TOKENS=1 DELIMS=:" %%A IN ('TIME/T') DO SET HH=%%A
FOR /F "TOKENS=2 DELIMS=:" %%A IN ('TIME/T') DO SET MM=%%A
现在您有两个变量 %HH% 表示小时,%MM% 表示分钟。希望这对您有所帮助。
答案2
时间和日期在两个系统变量中定义:%time%和%date%
(请注意,格式取决于区域和语言设置)
C:>回显 %时间%
17:16:13,39
C:>回显%日期%
2009年8月28日
联系人:>
答案3
综合所有这些帖子,我们可以得出原始问题的答案:
对于/f“tokens = 1-3 delims =:。” %% A在(“%time%”)中执行(
设置HH=%%A
设置 MM=%%B
设置SS=%%C)
将使用相应的值加载您的 HH MM 和 SS 存储桶。当然,您可以输入任何您想要的变量名称来代替它们。(保留名称除外。)如果您希望将秒的小数部分存储在最后一个值中,您也可以省略分隔符部分中的“。”(%time% 包含 HH:MM:SS.ss)
答案4
结合 Merstzik 和 Benoit 的答案并保存对外部程序的调用,您可以执行以下操作:
FOR /F "TOKENS=1 DELIMS=:" %%A IN ("%TIME%") DO SET HH=%%A
FOR /F "TOKENS=2 DELIMS=:" %%A IN ("%TIME%") DO SET MM=%%A