0

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

我想要的是:

在所有硬盘驱动器中的所有文件夹中搜索从 2013 年 11 月 10 日到 2013 年 11 月 11 日修改的文件 在驱动器 D:/backups/11_11 中创建文件夹文本文件,其中包含所有移动文件的日志、错误和移动时间(移动时间可选)

4

1 回答 1

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以使其正常工作。

于 2013-11-12T17:24:14.527 回答