在批处理脚本中按日期将文件移动到文件夹

时间:2012-10-19 14:01:10

标签: windows batch-file copy

目前我有一个7ZIP命令批处理文件,ZIPS文件在今天的日期在子目录中,并创建一个包含该日期的zip文件。

"c:\Program Files\7-Zip\7z.exe" a x:\Logs\HS\%date:~10,4%%date:~4,2%%date:~7,2%\%date:~10,4%%date:~4,2%%date:~7,2%_HS.zip X:\Logs\HS\%date:~10,4%%date:~4,2%%date:~7,2%* -xr!*.zip

这是在每月的每一天完成的

c:\20121018\20121018.zip
c:\20121019\20121019.zip

基本上我在同一目录结构中也有一个MONTH文件夹。 201210.基本上我需要的是一个任务,它将把今天的日期的zip文件移动到相应的月份文件夹。这将是每个月的未来。

非常感谢任何指导。

1 个答案:

答案 0 :(得分:1)

基本上你只需要

  1. 对于每个文件,从其名称中提取月份和年份
  2. 创建月份目录(如果它不存在)
  3. 将zip移动到月份目录
  4. 试试这段代码让你开始......

    for %%a in (*.zip) do (
      set fn=%%a
      set year=!fn:~0,4!
      set month=!fn:~4,2!
      if not exist !year!!month!\nul echo md !year!!month!
      echo move "%%a" "!year!!month!\%%a"
    )
    

    测试它,删除echo命令,再次测试......