2015-02-04 3 views
0

У меня есть папка с файлами с перкулярным форматом (321456.done24), и я хочу архивировать эти файлы с периодической датой в год ... что означает создать внутри этого папку другую папку с годом, если не существует, и все файлы за последние годы - кроме текущего года - чтобы переместить их туда. пример, который я нашел и попытаться модифицировать: `BATCH Файл: archive Файлы за год со специальным форматом

@echo off 
setlocal enabledelayedexpansion 
set FolderIncoming=C:\Temp 
set FileMask= *.done24 
set FolderSorted=C:\Temp 
for %%a in ("%FolderIncoming%\%FileMask%") do (
    set FileName=%%~na 
    echo Processing '!FileName!' ... 
    set TargetFolder=!FileName:~5,8! 
    if not exist "%FolderSorted%\!TargetFolder!" ECHO md "%FolderSorted%\!TargetFolder!" 
    ECHO move "%%a" "%FolderSorted%\!TargetFolder!" 
) 

`

, но не знаю, как я могу создать папку с года?

ответ

1

С только необходимые изменения в вашем фрагменте кода:

@ECHO OFF >NUL 
@SETLOCAL enableextensions enabledelayedexpansion 
set "FolderIncoming=D:\Temp" 
set "FileMask=*.done24" 
set "FolderSorted=D:\Temp" 
pushd "%FolderIncoming%" 
for %%a in ("%FolderIncoming%\%FileMask%") do (
    set "FileName=%%~na" 
    echo Processing '!FileName!' ... %%a ... %%~ta 
    rem next tokens and delims valid for 'dd.mm.yyyy HH:mm:ss' datetime format 
    for /F "tokens=3 delims=. " %%G in ("%%~ta") do set "fileyear=%%G" 
    echo md "%FolderSorted%\!fileyear!" 2>nul 
    set "TargetFolder=!FileName:~5,8!" 
    if not exist "%FolderSorted%\!TargetFolder!" ECHO md "%FolderSorted%\!TargetFolder!" 
    ECHO move "%%a" "%FolderSorted%\!TargetFolder!" 
) 
popd 
:: some code here 
@ENDLOCAL 
@goto :eof 
Смежные вопросы