加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Windowsbat批处理新建一个日期时间文件夹变日期和时间两个文件夹

(2024-10-23 14:25:01)
分类: 批处理(脚本)

Windows bat批处理 新建一个日期时间文件夹 变日期和时间两个文件夹 

前言全局说明

Windows bat批处理 新建一个日期时间文件夹 变日期和时间两个文件夹


一、说明

环境:


Windows 11 家庭版 23H2 22631.3737

二、错误的结果

文件名:time_dir_Y-M-D_H-M_err.bat


@echo off
::获取当前日期,格式:20190909
SET year=te:~0,4%
SET month=te:~5,2%
SET day=te:~8,2%
SET HH=%time:~0,2%
SET MM=%time:~3,2%
SET "Today=%year%-%month%-y%_%HH%-%MM%"
:: 年月日_时分秒
set timer=%Today%
echo md %timer%
md %timer%

https://img2024.cnblogs.com/blog/597729/202408/597729-20240806100310285-35708122.png


三、正常的接果

文件名:time_dir_Y-M-D_H-M_ok.bat


@echo off
::获取当前日期,格式:20190909 https://blog.51cto.com/lexsaints/2806267
SET year=%date:~0,4%
SET month=%date:~5,2%
SET day=%date:~8,2%
if "%time:~0,2%" lss "10" (set HH=0%time:~1,1%) else (set HH=%time:~0,2%)
SET MM=%time:~3,2%
SET Today=%year%-%month%-y%_%HH%-%MM%
:: 年月日_时分秒
set timer=%Today%
echo md %timer%
md %timer%

https://img2024.cnblogs.com/blog/597729/202408/597729-20240806100601713-1692597284.png


四、原因分析

之前使用一直,正常,早上使用,就发现不正常了,看了源码,也没发现什么问题,
想着先把不足两位数的时间前补0 ,9点改成09点,接果误打误撞,
补0后,新件文件夹又正常了。

想了一下整个过程,之前开发脚本时候是下午,取的小时是2位数,没有错,
但是早上时间只有1位数,而脚本还是取两位数,这时就在9前面产生空格,
这样相当于建两个文件夹了。

4.1 错误的命令,个位数的小时前没有补0


md 2024-08-06_ 9-02

4.2 正确的命令,个位数的小时前补0


md 2024-08-06_09-02


免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。




参考、来源:
https://blog.51cto.com/lexsaints/2806267



 

作者:悟透

原文链接:https://www.cnblogs.com/wutou/p/18344623

来源:博客园

著作权归原作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有