2013-07-08 2 views
0

우리는 다음 명령을 사용하여 일괄 적으로 정규식을 사용정규 표현식은

Dir "C:\Test\Res345_45664_1335" /s /b /a:-d | findstr /R "[(\d+)_(\d+)_(\d+)]" > filelist.txt 

은 "C : \ 테스트 \ Res345_45664_1335"작동하지 않는

Res345_45664_1335.txt 
Output.txt 
list.txt 

, 디렉토리는 다음 파일이 포함되어 우리 위의 dir 명령은 정규식이 "C : \ Test \ Res345_45664_1335"디렉토리에있는 모든 파일을 표시합니다. "C : \ Test \ Res345_45664_1335"디렉토리의 형식이 "Res345_45664_1335"이기 때문에. 하지만 우리는 파일 만 필요합니다 (전체 경로 포함).

감사합니다.

답변

0

Dir /s /b /a:-d *_*_* 

회원님이 "형식"에 의해 무슨 뜻인지 정말 확인하려고


아 - 형식 string_string_string에 파일 이름 ...

FOR /f "delims=" %%i IN ('dir /s /b /a-d *_*_*') DO ECHO "%%~ni"|FINDSTR /r "..*_..*_..*" >nul&IF NOT ERRORLEVEL 1 ECHO %%i 

(즉,로이다 배치 선 - 프롬프트에서 실행하려면 %%에서 %까지 줄입니다.

3

\d, ()+findstr에 유효한 메타 문자가 아닙니다. 보다 자세한 내용은 findstr /?을 참조하십시오. [0-9][0-9]*으로 대체해야합니다.

Dir "C:\Test\Res345_45664_1335" /s /b /a:-d | findstr /ER "[0-9][0-9]*_[0-9][0-9]*_[0-9][0-9]*.txt" > filelist.txt 
1

파일에 확장명이 있습니까?

Dir "c:\test\Res345_45664_1335" /s /b /a:-d | findstr /R "[0-9]*_[0-9]*_[0-9]*\." 
+0

좋은 점 : '* .TXT'로 필터링하지 않는 이유는 무엇입니까? – Endoro