zoukankan      html  css  js  c++  java
  • 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是个好东西

  • 相关阅读:
    Go语言学习之1 基本概念、环境搭建、第一个Go程序
    go环境搭建
    go 圣经阅读笔记之-入门
    RabbitMQ
    图片选择并使用base64展示
    关于c# hashtable的一个注意点
    js image to base64 摘录
    linq to sql 获取sql与参数添加到日志中
    时钟的实现
    无限级菜单的实现
  • 原文地址:https://www.cnblogs.com/medsonk/p/8334847.html
Copyright © 2011-2022 走看看