@ECHO OFF
SETLOCAL
SET filedatetime=20141116
SET "sourcedir=U:\sourcedir\t w o"
(
FOR /f "tokens=1-3delims=_" %%a IN ('findstr /r ".*_.*_.*" "%sourcedir%\*.txt"') DO (
IF %%b geq %filedatetime% ECHO %%a_%%b_%%c
)
)>newfile.txt
TYPE newfile.txt
GOTO :EOF
귀하의 상황에 맞게 sourcedir
설정을 변경해야합니다.
는
newfile.txt
내가 테스트의 편의를 위해 고정 된 날짜를 사용하여 새 파일을 생성합니다.
geq
은 선택한 날짜와 같거나 큰 라인을 생성합니다. gtr
은 ~보다 엄격하게 산출됩니다. 여기
(나는 그것을 생략 한)
-S\PED_20140129_110913.DBG: 1
-S\PED_20140229_110913.DBG: 1
-S\PED_20140329_110913.DBG: 1
-S\PED_20140429_110913.DBG: 1
-S\PED_20140529_110913.DBG: 1
-S\PED_20140629_110913.DBG: 1
-S\PED_20140729_110913.DBG: 1
-S\PED_20140829_110913.DBG: 1
-S\PED_20140929_110913.DBG: 1
-S\PED_20141029_110913.DBG: 1
-S\PED_20141129_110913.DBG: 1
-S\PED_20141229_110913.DBG: 1
그리고 결과 내 테스트 데이터입니다 :
U:\sourcedir\t w o\extra.txt:-S\PED_20141129_110913.DBG: 1
U:\sourcedir\t w o\extra.txt:-S\PED_20141229_110913.DBG: 1
나는 문제가 파일 이름 섹션에 제안했다
- 밑줄이 나타나면 비교를 위해 부정확 한 문자열이 취해질 것입니다.
당신은 문자열 비교되고있는 보여줄 것이다 (교체 if
문)
IF %%b geq %filedatetime% ECHO "%%b" geq "%filedatetime%"
와이를 테스트 할 수있다.
분리 아웃 데이터로부터 파일명을
@ECHO OFF
SETLOCAL
SET filedatetime=20141116
SET "sourcedir=U:\sourcedir\t w o"
(
FOR /f "tokens=1,2,*delims=:" %%p IN ('findstr /r ".*_.*_.*" "%sourcedir%\*.txt"') DO (
FOR /f "tokens=1-3delims=_" %%a IN ("%%r") DO (
IF %%b geq %filedatetime% ECHO %%p:%%q:%%a_%%b_%%c
)
)
)>newfile.txt
TYPE newfile.txt
GOTO :EOF
가 설정만으로 데이터를 처리 :
이 그 문제를 해결한다.
은 날짜 주변에 '_'가 표시되는 유일한 장소입니까? – npocmaka
예 : _ 존재하는 곳만 날짜 주변에 표시됩니다. –