我想写一个批处理作业,执行时会抓取C:\Test\Log
文件夹中的所有文件并将它们移动到C:\Test
中的新目录。这个新目录将有一个名为“Backup-”和CURRENT DATE的名称。
因此,一旦完成,日志文件夹应为空,所有文件现在都位于新文件夹中。
我知道我必须使用MOVE
命令,但不知道如何动态创建新文件夹,并使用日期来命名它。
答案 0 :(得分:30)
这样的事情可能有所帮助:
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
的环境变量,格式为CCYYMMDD
,如'20110407`。
%Date:~10,4%
表示从位置开始提取Date
环境变量'Thu 04/07/2011'的*子字符串(在命令提示符下内置 - 类型echo %Date%
) 10个符合4个字符(2011
)。然后它连接另一个Date:
子字符串,从第4位开始为2个字符(04
),然后从位置7(07
)开始连续两个字符。
*子字符串值的起始点是从0开始的。
您可能需要根据语言环境中的日期格式调整这些值,但这应该为您提供一个起点。
答案 1 :(得分: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