2013-11-27 2 views
0

사전 도움을 주셔서 감사합니다.파일 이름이있는 이름에 날짜가있는 .xml 파일을 .txt 파일로 나열하는 일괄 스크립트

폴더의 파일 이름에 날짜가있는 xml 파일이 있습니다.

  • 프로필 - 20131126-1.xml
  • 프로필 - 20131125-2.xml
  • 프로필 - 20131124-5.xml
  • Logic145242013_11_26.xml
  • Logic154752013_11_25.xml
  • 로직 154852013_11_24.xml

이제 26-11-2013 일 이하의 파일 이름을 .txt 파일로 가져와야합니다. 날짜는 파일 이름에서 볼 수 있습니다.

그래서 출력은 아래와 같아야합니다.

  • 프로필 - 20131125-2.xml는
  • 프로필 - 20131124-5.xml
  • Logic154752013_11_25.xml
  • Logic154852013_11_24.xml

어떤 하나 배치를 위해 좀 도와 주실 래요 스크립트.

감사와 안부, 시바

+0

예를 들어 해당 디렉토리에 ** 유일한 ** 파일 구조가 있습니까? Logic 파일에는 날짜 부분 이전에 항상 5 개의 숫자가 있습니까? –

답변

0

나는이 개 부분에서 문제를 분할보다 여기에 다른 해결책을 볼 수 없습니다 : 프로필에 대한 - * xml 파일 및 로직 * .XML 것들에 대한합니다..

아래 스크립트에서 20131126과 비교하여 이전 파일을 가져 왔습니다. 비교할 수 있도록 위의 형식으로 날짜를 얻기 위해 부분적으로 파일 이름을 분할하십시오.

@echo off 
setlocal EnableDelayedExpansion 

set mydate=20131126 

rem take each file name 
for %%a in (Profile-*-*.xml) do (
    rem take only data, split by dash and take second value 
    for /F "tokens=2 delims=-" %%f in ("%%a") do (
     rem compare with 20131126 
     if %%f LSS %mydate% ( 
      echo %%a>>txtfile.txt 
      rem Add processing of your files here 
     ) 
    ) 
) 

rem take each file name 
for %%a in (Logic*_*_*.xml) do (  
    rem put the value in a local parameter 
    set filename=%%a 
    rem take only the last 14 to 4 letters 
    set filename=!filename:~-14,-4! 
    rem remove underscores 
    set filename=!filename:_=! 
    rem compare with 20131126 
    if !filename! LSS %mydate% (   
     echo %%a>>txtfile.txt 
     rem Add processing of your files here 
    ) 
) 
+0

안녕하세요 미하이, 내가 직면 한 문제는 현재 날짜에 해당합니다. 예를 들어 오늘 날짜가 28-11-2013이라고 생각하십시오. 및 폴더 있음 있음 파일 Profile-20131126-1.xml Profile-20131125-2.xml Profile-20131124-5.xml Profile-20131127-5.xml Logic145242013_11_27.xml Logic154752013_11_25.xml. 이 경우 파일 아래에만 .txt 파일을 입력해야합니다. Profile-20131126-1.xml Profile-20131125-2.xml Profile-20131124-5.xml Logic154752013_11_25.xml. 오늘 날짜보다 적은 부분이 출력이어야한다고 말합니다. – user3041851

+0

안녕하세요. Siva. 코드에서 주석을 제거하거나 편집 한 것처럼 다른 줄에 넣으십시오. 원래의 질문에서 출력물에 날짜가 26-11-2013 미만인 파일이 필요합니다. 현재 날짜를 매개 변수로 스크립트에 전달하거나 자동으로 가져올 수 있지만 이는 까다로울 수 있습니다. –

관련 문제