命令提示符/批处理文件 - 创建名为今天日期的新文件夹

5
我使用以下代码创建一个以今天日期命名的新文件夹:
for /f "tokens=1* delims=" %%a in ('date /T') do set datestr=%%a
mkdir c:\%date:/=%

现在的格式如下所示:
20130619

我该如何更改格式呢?
2013_06_19

谢谢你

4个回答

23

%date% 依赖于您计算机的设置和区域设置。下面是一个可靠的获取日期和时间戳的方法,适用于Win XP专业版及以上版本。

如果您需要在未知的计算机上使用您的批处理文件,那么这个方法值得尝试。

:: time and date stamp YYYYMMDD, HHMMSS and YYYY-MM-DD_HH-MM-SS
@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a
set datestamp=%dt:~0,8%
set timestamp=%dt:~8,6%
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set HH=%dt:~8,2%
set Min=%dt:~10,2%
set Sec=%dt:~12,2%

set stamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%
echo stamp: "%stamp%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"

pause

3
终于有一个不依赖于本地日期格式的人了! - Serge Wautier

7
for /f "tokens=1-3 delims=/" %%a in ("%date%") do md "%%a_%%b_%%c"

2
做这个:

for /F "tokens=2-4 delims=/ " %%i in ('date /t') do set yyyymmdd1="%%k"_"%%i"_"%%j"
mkdir %yyyymmdd1%

1
以下是一个之前的回答,可能会对你有所帮助:https://dev59.com/SWXWa4cB1Zd3GeqPOpoA - 请看我如何操作“%%i”、“%%k”或“%%j”以及它们之间的下划线。 - ilansch
谢谢,但是你的答案只显示了文件夹名称中的月份和日期,没有年份...请测试一下。 - DextrousDave
嗨,它显示了所有内容,也许你没有复制粘贴整行代码 :) 我的答案与你接受的那个完全相同且原创。 - ilansch

2
或者简单地说
SET Today=%Date:~10,4%_%Date:~7,2%_%Date:~4,2%

echo %today%

输出

2013_06_19
Press any key to continue . . .

然后,您可以轻松使用变量today来创建目录,例如:

mkdir %today%

编辑:YYYY_MM_DD 格式


根据您当前的代码,它会将“today”作为文件夹名称返回。 - DextrousDave
是的,这不就是你想要的吗?你可以连接驱动器号或路径的其他部分。这个解决方案不包含任何for循环。 - Dejan Dakić

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接