【问题标题】:get just HH:MM on batch script [duplicate]在批处理脚本上只获取 HH:MM [重复]
【发布时间】:2021-02-02 14:15:47
【问题描述】:

我只需要获得 HH:MM 代码就可以工作,但如果我这样做 echo %TIME% 变量是 HH:MM:SS,我怎样才能打破字符串或让它只显示小时和分钟?

【问题讨论】:

  • TBF,问题似乎更多是关于变量扩展,而不是如何以特定格式获取日期和时间,(尽管作为任务的一部分,获取已知的一致格式应该是必不可少的)。因此,我提供了一个既能实现一致格式又能实现所需扩展的答案。

标签: batch-file time


【解决方案1】:
echo %TIME:~0,-3%

虽然 %time% 对我来说显示 22:23:01.87

对我来说,

echo %TIME:~0,-6%

有关更多信息,请参阅提示中的set /?

【讨论】:

  • 谢谢你,你的回答帮了我很多
【解决方案2】:

您的想法最大的问题是%TIME% 不是以一致的格式在区域设置、PC 或用户之间输出。如果您想要一种无论 PC 或用户设置如何都能正常工作的方法,那么以下内容可能会对您有所帮助:

@For /F "Tokens=2-3 Delims=: " %%G In ('""%__AppDir__%Robocopy.exe" \: . /NJH /L | "%__AppDir__%find.exe" " 123""') Do @Echo %%G:%%H

建议您最好先使用相同的方法以已知格式保存具有当前日期和时间的新变量,即yyyy/MM/ddhh:mm:ss,然后在时间上使用变量扩展到第一个五个字符~,5,或除最后三个字符之外的所有字符~,-3

@For /F "Tokens=1-2" %%G In (
    '""%__AppDir__%Robocopy.exe" \: . /NJH /L | "%__AppDir__%find.exe" " 123""'
) Do @Set "NowDate=%%G" & Set "NowTime=%%H"
@Set Now & Echo hh:mm is %NowTime:~,5% & Pause

最后一行只是为您提供示例输出,您显然可以根据自己的目的进行更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 2019-08-10
    • 1970-01-01
    • 2021-09-09
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多