代码改变世界

windows cmd命令 mkdir生成多个文件bug问题

2019-05-22 13:55  yongchin  阅读(1460)  评论(0编辑  收藏  举报

[问题现象]

有这样一个bat脚本,目的是为了根据时间创建文件夹

 

执行后却发现生产的文件夹有两个,名字被分开了,很是纳闷,一度以为自己哪里写错了

 

 

[问题原因]

经过查阅资料,一点一点的定位。发现是因为win10系统的原因。hh=%time:~0,2% 因为时间是早上9点,所以生成的字符是"  9",这样在cmd里面创建文件夹的时候就会被断开生成两个文件

[解决方法]

需要做一个判定修改,加上

if /i %hh% LSS 10 (set hh=0%time:~1,1%)

更改为

@echo off

set mm=%date:~5,2%
set dd=%date:~8,2%
set hh=%time:~0,2%
if /i %hh% LSS 10 (set hh=0%time:~1,1%)
set mn=%time:~3,2%
set ss=%time:~6,2%

set dirname=xxxxnews_%mm%_%dd%_%hh%_%mn%_%ss%

mkdir %dirname%

pause

就可以了