• cmd提取时间格式(小时)问题以及Windows系统语言判断


     

    你在这里看到了我的现在的时间是01:15,没错正在做个开发,本来好好的,结果一运行,直接报错:

    这里就是时间中的获取小时出了问题,之前23点那会已经调试通过了,过那时是没有问题的,那么这时发生了什么?为何中间会多了一个空格?

    在系统cmd中提取时间:

    可以看到小时前面还是有空格,那么是编码问题chcp 65001 改到 chcp 936 一样还是。

    最后,想到可能这里的时间是个位数?试试

    for /l %i in (0,1,9) do ( if %time:~0,2%==%i echo 0%i )
    01

     果然这样就对了

    还有就是,我的bat文件要可以在中文,和英文系统上提取时间,在chcp 65001 下提取的时间格式是不同的,那么如何能正确提取呢? 

       思路一:

        cmd判断系统的语言,

            systeminfo输出的中虽然有zh-cn 但是中英文都是一样,排除

            采用dxdiag输出文件后有具体的语言,可是每当执行到这里时,这两个命令都会等好一会时间,而且执行dxdiag命令后,检测生成的文件还会提示文件不存,但其实是有输出的。排除

      思路二:

        既然系统提取的时间不同那么直接根据不同来判断,不同主要是在提取的时间有没有/,一般正常提取后是:20181022 错误的是 2018/10/22

    set dateTime=%date:~10,4%%date:~4,2%%date:~7,2%_%hour%%time:~3,2%%time:~6,2%%time:~9,2%
    echo %dateTime% |find "/" &&    set dateTime=%date:~3,4%%date:~8,2%%date:~11,2%_%hour%%time:~3,2%%time:~6,2%%time:~9,2%

        这样我们就可以提取正确的时格式,又可以判断系统的语言了。

    如果想要获取系统语言:

    dism /online /get-intl

    cmd时间格式参考:

    参考:原文:https://blog.csdn.net/jinhoward/article/details/20213213 

    比如在windowscmd命令行窗口执行date命令后这个环境变量的值为

    那么如下的各个操作的意义如下:
    %date:~0,4%  表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取4位字符,结果是2014(年的值)
    %date:~5,2%  表示指针从左向右偏移5位,然后从偏移处开始提取2位字符,结果是03(月的值)
    %date:~8,2%  表示指针从左向右偏移8位,然后从偏移处开始提取2位字符,结果是01(日的值)
    %date:~5%    表示指针从左向右偏移5位,然后提取所有的值
    %date:~-5%   表示指针反方向偏移,从最右端开始,偏移5位,然后从指针处提取左边的所有数值。
    注意:“2014-03-01 星期六”是个字符串,在计算机里指针是从0开始计数的,所以这串字符的指针意义上的第5位是0,月份的0,取两位刚好是03.

    同理,比如当前系统的time变量的值如下:

     

    那么如下的各个操作的意义如下:
    %time:~0,2%  表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取2位字符,结果是小时字段数值
    %time:~3,2%  表示指针从左向右偏移3位,然后从偏移处开始提取2位字符,结果是分钟字段数值
    %time:~6,2%  表示指针从左向右偏移6位,然后从偏移处开始提取2位字符,结果是秒字段数值
    实战操作:                                                                                                                       
    md d:\%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%

  • 相关阅读:
    1042 Shuffling Machine
    1043 Is It a Binary Search Tree
    1044 Shopping in Mars
    1443. Minimum Time to Collect All Apples in a Tree
    1045 Favorite Color Stripe
    Java笔记八:Java内置的包装类(1)
    Java笔记七:Java数字和日期处理(2)
    Java笔记六:Java数字和日期处理(1)
    Java笔记五: Java正则表达式
    Java笔记四:Java字符串处理
  • 原文地址:https://www.cnblogs.com/feiquan/p/9840987.html
Copyright © 2020-2023  润新知