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

时间:2011-04-07 22:09:21

标签: windows batch-file cmd

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

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

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

2 个答案:

答案 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