首页 > 解决方案 > 如何在批处理文件中按日期时间创建文件夹

问题描述

我正在尝试使用以下代码在我的批处理文件中按日期时间创建一个文件夹

@echo off & for /F "tokens=1-4 delims=/ " %%A in ('date/t') do (
 set DateDay=%%A
 set DateMonth=%%B
 set Date=%%C
set DateYear=%%D
)
@echo off & for /F "tokens=1-4 delims=/ " %%D in ('time/t') do (
set DateTime=%%D
)
set CurrentDate=%Date%-%DateMonth%-%DateYear%-0%time:~0,2%.%time:~3,2%.%time:~6,2%
mkdir %CurrentDate%

使用这个我得到文件夹名称 22-02-2021-010.01.37 但是如果时间是在 1 到 9 小时,我的文件夹会显示,因为
22-02-2021-0 9.59.190 和 9 和 1 到 9 小时总是有一个空格不显示为 01,02,03 小时

答案应该是:

22-02-2021-009.59.19

标签: datetimebatch-filecommand-linecommand

解决方案


最好和正确的方法是使用独立于区域day/month顺序的日期,您可以将"WMIC os GET LocalDateTime"其用作来源,因为它是 ISO 顺序:


@echo off
Title Get FileName With Date and Time
Call :GetFileNameWithDateTime MyCurrentDate
echo %MyCurrentDate%
MkDir %MyCurrentDate%
pause & exit
::----------------------------------------------------------------------------------
:GetFileNameWithDateTime <FileName>
for /f "skip=1" %%x in ('wmic os get localdatetime') do if not defined MyDate set "MyDate=%%x"
set "%1=%MyDate:~0,4%-%MyDate:~4,2%-%MyDate:~6,2%-%MyDate:~8,2%-%MyDate:~10,2%"
Exit /B
::----------------------------------------------------------------------------------

推荐阅读