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

Gab*_*iel 14 windows cmd batch-file

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

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

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

Ken*_*ite 31

这样的事情可能会有所帮助:

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=
Run Code Online (Sandbox Code Playgroud)

重要的是第一行.它接受内部DATE值的输出并将其解析为一个名为的环境变量Today,格式CCYYMMDD为'20110407`.

%Date:~10,4%说,以提取的*子Date环境变量"星期四04/07/2011"(建于-型echo %Date%在命令提示)起始于位置10为4个字符(2011).然后它连接另一个Date:从位置4开始的子串,用于2个字符(04),然后从位置7(07)开始连续两个额外的字符.

*子字符串值起始点是从0开始的.

您可能需要根据语言环境中的日期格式调整这些值,但这应该为您提供一个起点.

  • @Sertac,这是胡说八道.`%DATE%`返回以短日期格式格式化的日期,这里是ISO-8601(YYYY-MM-DD),可以是各种不同格式的任何日期. (4认同)
  • +1,无需进行区域设置调整,[日期](http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/date.mspx?mfr=true)始终为*MM-DD-YY* (2认同)
  • @PA:然后使用`wmic os get localdatetime`. (2认同)