• bat脚本中timeStamp解决方案


    之前做了个工具包,用了timeStamp做文件名。

    一般来说最简单的代码类似于:

    set timeStamp=%date:/=-%_%time%
    echo %timeStamp%
    >2018-01-23_11:23:44.43

    但这样写会引发两个严重的问题:

    1、10点前的timeStamp会出现空格,网上很多人在讨论了,但忽略了下面这个问题;

    2、%date%和%time%都是直接读windows的时间格式(也就是右下角的那个时间格式),会出现不通用的结果。

    下面来说下我的解决方案:

    采用wmic来格式化时间,得出YYYYMMDDHHMinSec,这样就不会出现任何格式问题,代码如下:

    @echo off
    for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
    echo %dt:~0,14%
    >20180123112344

    然后在此基础上加各种分隔符就好:

    @echo off
    for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
    echo %dt:~0,4%-%dt:~4,2%-%dt:~6,2%_%dt:~8,2%-%dt:~10,2%-%dt:~12,2%
    >2018-01-23_11-23-44

    完毕

    ################################

    这个问题的解答来自

    https://stackoverflow.com/questions/11037831/filename-timestamp-in-windows-cmd-batch-script (搜关键字wmic)

    更多八仙过海各显神通的版本来自

    https://stackoverflow.com/questions/203090/how-do-i-get-current-datetime-on-the-windows-command-line-in-a-suitable-format

    //stackoverflow是个好东西

  • 相关阅读:
    高中时代的记忆
    winscp连接vmware ubuntu
    linux下mysql环境支持中文配置步骤
    mysql中常用的语句整理
    linux服务器伪分布模式安装hadoop-1.1.2
    linux运维常用命令
    hbase 单机模式安装
    灰度发布
    HDU 5269 ZYB loves Xor I
    HDU 5536 Chip Factory
  • 原文地址:https://www.cnblogs.com/medsonk/p/8334847.html
Copyright © 2020-2023  润新知