Windows CMD创建动态命名目录

问题描述 投票:0回答:2

我正在尝试使用CMD在Windows中创建目录,但是目录名称必须是动态的。

我有一个批处理脚本(.bat文件),该脚本每天将数据库转储运行到给定的文件夹中,例如C:\Users\name\Documents\dump-destination,其中包含一堆.sql文件。现在,我需要将所有这些文件move放入与当天的转储日期相对应的目录中,例如db-31-12-2020

如何动态创建上面提到的db-31-12-2020目录(带有当天的日期,以便可以在下面使用它?

move C:\Users\name\Documents\dump-destination\* D:\new-dump-destination\?

windows batch-file cmd mkdir
2个回答
0
投票

这假设您的本地日期格式为dd / mm / yyyy。如果是mm / dd / yyyy,则必须四舍五入。

set destdir=db-%date:~0,2%-%date:~3,2%-%date:~6,4%
md D:\new-dump-destination\%destdir%
move C:\Users\name\Documents\dump-destination\* D:\new-dump-destination\%destdir%\

您可以使用db-%date:〜0,2%-%date:〜3,2%-%date:〜6,4%字符串两次,而不是使用destdir变量,但是如果将其运行到接近午夜,时钟在两个通话之间滚动,它中断了。


0
投票

使用此代码:

@Echo off
:: Save the day, month and year in variables
For /F "Tokens=2,3,4 Delims= \" %%a in ('Date /T') Do Set day=%%a & Set month=%%b & Set year=%%c
:: Create directory
MkDir "D:\new-dump-destination\db-%day%-%month%-%year%"
:: Move files
move "C:\Users\name\Documents\dump-destination\*" "D:\new-dump-destination\db-%day%-%month%-%year%\"
© www.soinside.com 2019 - 2024. All rights reserved.