Windows 将文件移动到新目录的批处理命令

Windows 将文件移动到新目录的批处理命令,windows,batch-file,cmd,Windows,Batch File,Cmd,我想编写一个批处理作业,当执行该作业时,它将抓取C:\Test\Log文件夹中的所有文件,并将它们移动到C:\Test中的一个新目录。这个新目录将有一个名为“Backup-”的名称和当前日期 因此,一旦完成,日志文件夹应该是空的,所有文件现在都位于新文件夹中 我知道我必须使用MOVE命令,但不知道如何动态创建一个新文件夹,并使用日期来命名它。类似的内容可能会有所帮助: SET Today=%Date:~10,4%%Date:~4,2%%Date:~7,2% mkdir C:\Test\Backu

我想编写一个批处理作业,当执行该作业时,它将抓取
C:\Test\Log
文件夹中的所有文件,并将它们移动到
C:\Test
中的一个新目录。这个新目录将有一个名为“Backup-”的名称和当前日期

因此,一旦完成,日志文件夹应该是空的,所有文件现在都位于新文件夹中


我知道我必须使用
MOVE
命令,但不知道如何动态创建一个新文件夹,并使用日期来命名它。

类似的内容可能会有所帮助:

SET Today=%Date:~10,4%%Date:~4,2%%Date:~7,2%
mkdir C:\Test\Backup-%Today%
move C:\Test\Log\*.* C:\Test\Backup-%Today%\
SET Today=
重要的部分是第一行。它获取内部
DATE
值的输出,并将其解析为名为
Today
的环境变量,格式为
ccyymmd
,如“20110407”所示

%Date:~10,4%
表示从位置10开始提取环境变量“Thu 04/07/2011”(在命令提示下内置-type
echo%Date%
)的*子字符串,共4个字符(
2011
)。然后,它将另一个
Date:
子字符串从位置4开始连接2个字符(
04
),然后从位置7开始连接另外两个字符(
07

*子字符串值起始点基于0


您可能需要根据区域设置中的日期格式调整这些值,但这应该为您提供一个起点。

如果您愿意,这也会起作用

 xcopy  C:\Test\Log "c:\Test\Backup-%date:~4,2%-%date:~7,2%-%date:~10,4%_%time:~0,2%%time:~3,2%" /s /i
 del C:\Test\Log

+1、无需现场调整,始终为mm dd-yy@Sertac,那是胡说八道
%DATE%
返回以短日期格式格式化的日期,在这里是ISO-8601(YYYY-MM-DD),可以是各种不同格式中的任何一种。@PA:使用
wmic os get localdatetime
代替。将这些片段放在一起,应用于Ken的答案,一行代码将是
中的/F“skip=1 tokens=1-6”%a('WMIC Path Win32\u LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year/Format:table')DO(SET/A TODAY=%F*10000+%D*100+%A)
@PA:Nice,不知道那一个。
Win32\u UtcTime
也可以派上用场。