2011-09-11 5 views

답변

2

여기에 명령 프롬프트/MS-DOS 배치 파일에 대한 정보가 있다고 가정합니다.

당신이 다음 경우 안타깝게도 대답은 NO, 평범한 구식 배치 파일 지원은 유일한 와일드 카드 :

* = match all 

및 를? = 그래서 1

일치 :

 mytune*.mp? 

이 일치합니다 :

 mytune01.mp3, mytune01.mpg, mytune-the-best.mpe 

그러나 대안이있다 ...

당신의 현대 윈도우 버전을 사용하는 경우, 기회는 당신이다 파워 쉘을 설치하려면

start-> run을 실행 한 다음 power-shell을 입력하고 언론 보도, 만약 당신이 명령 프롬프트 창이 열리면 당신이 그것을 설치했는지, 다음 MS 사이트에서 다운로드를 찾습니다.

http://powershell.com/cs/blogs/ebook/archive/2009/03/30/chapter-13-text-and-regular-expressions.aspx

나는 그러나 것은 한 시간 정도를 지출하는 것이 좋습니다 :

이이 후에는 바로 다이빙을하려는 경우, 당신은 당신이 등록-전에 필요한 모든 찾을 수 있습니다 여기에 PS입니다 기본 학습.

+0

예 창작에 대해 이야기하고 있습니다. 일괄 그런 건 없다고 추측했지만 그게 묻지 않아요. 어쨌든 고마워요. :) – Ori

+0

절대적으로 ... powershell은 당신이 원하는대로 할 수 있습니다. 배치 파일 대신 사용하십시오. – shawty

1

findstr에 있습니다. 체크 아웃 THIS

+1

findstr은 주어진 문자열에 대해서만 파일을 검색합니다.이 경우 OP는 명령 행 정규 표현식에 관한 것입니다. – shawty

+0

그리고 명령 출력을 파일에 쓰면'findstr'로 검색 할 수 있습니다. –

10

이 크레딧 중 일부는 Y.A.P.의 답변입니다.

다음 코드는 파일 이름에 적어도 하나 개의 숫자로 당신에게 디렉토리에있는 모든 파일을 얻을 것이다 :

@Echo Off 
CD C:\Folder\To\Process 
Dir /B>Dir.temp 
FindStr /R "[0-9]" "Dir.temp">FindStr.temp 
Del Dir.temp 
For /F "tokens=*" %%a In (FindStr.temp) Do Call :WorkIt "%%a" 
Del FindStr.temp 
Exit /B 

:WorkIt 
:: Insert code here. Use %1 to get the file name with quotes. For example: 
Echo Processing %1... 
Exit /B 

FindStr 라인은 정규식 표현이 포함되어 있습니다. regex의 명령 행 버전은 제한되어 있습니다. 파일 이름의 정확한 범위와 형식은 무엇입니까?

예를 들어 모든 파일에 3 자리 숫자가있는 것을 알고있는 경우 [0-2][0-9][0-9]이라는 표현으로 000에서 299까지의 모든 항목으로 제한 할 수 있습니다.

+0

큰 감사, 그것은 내가 무엇을 찾고 있었는지도 모르겠다 – Ori

+1

안녕하세요, 하나는'dir/B'의 출력을'findstr'에 파이핑하여'Dir.temp' 중간 파일을 없앨 수 있습니다. 이'dir/B | findstr/R "[0-9]"> FindStr.temp'. 그렇지 않으면, 아주 좋은 게시물, 많은 도움이되었습니다. 건배! – Jagger