2015-02-04 3 views
0

내가 perticular 형식 (321456.done24)와 파일 전체 폴더를 가지고 있고이 연간 배치 datei로 파일을 보관할 ... 즉,이 내부에 생성하는 것을 의미한다 폴더, 현재 존재하지 않는 경우, 연도가있는 다른 폴더 및 지난 연도의 모든 파일 (현재 연도 제외)을 이동하십시오. 예를 들어 내가 발견하고 수정하려고 한 것을 : 나는 올해로 폴더를 만들 수있는 방법을 알고배치 파일 : 특별한 형식의 연간 아카이브 파일

@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