zoukankan      html  css  js  c++  java
  • 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%

  • 相关阅读:
    POJ 2175 Evacuation Plan 费用流 负圈定理
    POJ 2983 Is the Information Reliable? 差分约束
    codeforces 420B Online Meeting
    POJ 3181 Dollar Dayz DP
    POJ Ant Counting DP
    POJ 1742 Coins DP 01背包
    中国儒学史
    产品思维30讲
    Java多线程编程核心技术
    编写高质量代码:改善Java程序的151个建议
  • 原文地址:https://www.cnblogs.com/feiquan/p/9840987.html
Copyright © 2011-2022 走看看