2013-11-12 2 views
0

Мне нужно переместить файл из всех папок на всех жестких дисках, измененных в течение двух дат. Потому что я новичок в партии, объясните, что все это значит.перемещать файлы по дате с партией

Что я хочу:

Искать все папки во всех жестких дисках для измененных файлов от 10 ноября 2013 до 11 ноября, 2013 папки Make в дисководе D:/резервное копирование/11_11 Переместить все найденных файлы при сканировании модифицированного в датах и ​​года в папку MADE Создайте текстовый файл с логом всех файлов перемещаемых, ошибок, и время переехали (время переехали необязательный)

ответ

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, чтобы заставить его работать.

+0

К сожалению, формат '%% ~ ta' зависит от локали – foxidrive

+0

@foxidrive да, вы правы, и я знаю это также. Мой код описывает базовую процедуру. И это бесплатное программное обеспечение, патчи приветствуются. – Endoro

+0

Хе-хе Тогда все, что нужно - это искать каждый диск и копировать файлы в путь поиска. BTW, является второй переменной поискового пути отладочной линией? – foxidrive

Смежные вопросы