2017-05-21 3 views
-1

회사 코드가 있음 폴더에 회사 코드가 있습니다 월 폴더에 텍스트 파일이 있습니다 (exp.folder 01 텍스트 파일 = 31, 폴더 01 TEXTFILE = 28)일괄 폴더의 텍스트 파일을 월 단위로 폴더

0300003 Boots -------------> month 

           (01)-----> Text file = 31 file 
           (02)-----> Text file = 28 file 
           (03)-----> Text file = 31 file 
           (..)-----> Text file = day of the month 
           (12)-----> Text file = 31 file 

enter image description here

나는 다른 날 폴더

 0300003_20170101144116.txt to c:\jan\01 
    0300003_20170102144034.txt to c:\jan\02 
    0300003_20170103144748.txt to c:\jan\03 
     .......... 
    0300003_20170131154443.txt to c:\jan\31 
에 달 폴더에 파일을 복사 할
0300004 AsiaBook ---------> month (01,02,03..12) 
0300005 FamilyMart --------> month (01,02,03..12) 

'

 0300003_20170201145125.txt to c:\fab\01 
     .......... 
     0300003_20170228144741.txt to c:\fab\28 

및 기타 기업

 0300004_20170101144255.txt to c:\jan\01 

내가

가 답장을 보내 주셔서 감사합니다 매월 하루에 회사의 모든 합계를 원하기 때문에 ....

+3

https://stackoverflow.com은 무료 스크립트/코드 작성 서비스가 아닙니다. 지금까지 시도한 내용 (이미 사용하고있는 스크립트/코드 포함)과 문제가있는 부분을 알려 주시면 특정 문제를 해결하기 위해 노력할 수 있습니다. [좋은 질문을하는 법은 무엇입니까?] (https://stackoverflow.com/help/how-to-ask)도 읽어야합니다. – DavidPostill

답변

1

당신이 만약 이전 년 동안 같은 형식을 가지고있다.

X:\PathTo\2017\KPT_BU\0300003 Boots\Send\11\0300003_20171131154119.txt 
X:\PathTo\2015\KPT_BU\0300005 FamilyMart\Send\09\0300005_20150915144813.txt 

그런 다음, 예를 X:\PathTo에서 다음 스크립트를 배치하고 당신이 해마다에서 찾고있는 디렉토리 및 파일 구조를 만들어야합니다 호출

%dstRoot%\2017\Nov\31\0300003_20171131154119.txt 
%dstRoot%\2015\Sep\15\0300005_20150915144813.txt 

여기에서 %dstRoot%은 새 디렉토리 구조 및 복사 된 파일에 대해 선택한 대상입니다. (일반적으로 C:의 루트에 디렉터리를 만들 수있는 권한이 제한되어 있으므로 초기 위치에서 변경했습니다.). 해당 위치를 행 3, 에 맞게 변경할 수 있습니다 (백 슬래시로 닫지 마십시오).

@Echo Off 
SetLocal DisableDelayedExpansion 
Set "dstRoot=C:\Users\liptnait" 
Set "m=JanFebMarAprMayJunJulAugSepOctNovDec" 
For /F "Delims=" %%A In ('Where /R . ???????_??????????????.txt') Do (
    Set "_o=%%~dpnA" 
    SetLocal EnableDelayedExpansion 
    Set "_t=!_o:~-8,2! 
    For /F "Tokens=1,5 Delims=\" %%B In ("!_o:%CD%\=!") Do (Set/A "_i=3*(%%C-1)" 
     Call Set "_m=%%m:~!_i!,3%%" 
     If Not Exist "%dstRoot%\%%B\!_m!\!_t!" MD "%dstRoot%\%%B\!_m!\!_t!" 
     Copy "%%A" "%dstRoot%\%%B\!_m!\!_t!">Nul) 
    EndLocal) 
GoTo :EOF 
+0

고맙습니다. Compo, 당신의 대답은 매우 유용합니다. 내 사건은 아주 가깝다. – liptnait

+0

감사합니다. 내 답변을 수락하면 감사하겠습니다. – Compo

관련 문제