按批次日期戳移动文件

时间:2013-11-12 16:01:55

标签: batch-file hard-drive

我需要从两个日期内修改的所有硬盘驱动器上的所有文件夹中移动文件。因为我是批处理的新手,请解释一下这意味着什么。

我想要的是什么:

  

搜索所有硬盘中的所有文件夹,查找从11月10日开始修改的文件,   2013年至2013年11月11日在驱动器D中创建文件夹:/ backups / 11_11全部移动   扫描中找到的文件在日期和YEAR中修改了   文件夹创建一个文本文件,其中包含所有文件的日志,   错误和移动时间(移动时间可选)

1 个答案:

答案 0 :(得分:1)

@ECHO OFF &SETLOCAL
set "date1=01/09/2013"
set "date2=31/10/2013"
set "SearchPath=D:/backups/11_11"
set "datestamp1=%date1:~6,4%%date1:~3,2%%date1:~0,2%"
set "datestamp2=%date2:~6,4%%date2:~3,2%%date2:~0,2%"

for %%a in ("%searchpath%\*") do (
    set "fname=%%~a"
    for /f "tokens=1-3 delims=/-. " %%b in ("%%~ta") do set "datestampF=%%~d%%~c%%~b"
    SETLOCAL ENABLEDELAYEDEXPANSION
    if "!datestampF!" gtr "%datestamp1%" if "!datestampF!" lss "%datestamp2%" echo move "!fname!" "DestinationFolder"
    endlocal
)

删除echo以使其正常工作。