지정된 디렉토리에서 원하는 파일 유형의 모든 파일을 재귀 적으로 나열하는 방법은 무엇입니까?

에피 르 비다

Windows에서 스크립트를 .java사용하여 원하는 디렉토리의 모든 파일을 나열하고 싶습니다 .bat. 이것을 실행할 때 :

set JMETALHOME=%cd%
dir %JMETALHOME%\jmetal\problems /S /B 

problems디렉토리의 모든 파일을 나열합니다 . 그러나 파일을 Java 파일로만 필터링하려면 다음을 수행하십시오.

set JMETALHOME=%cd%
dir %JMETALHOME%\jmetal\problems /S /B *.java > sources.txt

폴더의 모든 .java파일을 나열 %JMETALHOME%합니다.

Mofi

전체 경로를 사용하여 반복적으로 디렉토리 트리에서 찾은 특정 파일 확장자를 가진 모든 파일의 이름을 가져 오는 두 가지 일반적인 방법이 있습니다. 일반적인 방법 중 하나는 DIR 명령 사용하는 것이고 다른 하나는 FOR 명령 을 사용하는 것 입니다.

* .java 및 * .html 파일에 대한 두 방법을 모두 보여주는 예제 코드 :

@echo off
set "JMETALHOME=%CD%"

dir "%JMETALHOME%\jmetal\problems\*.java" "%JMETALHOME%\jmetal\problems\*.html" /B /S >SourcesDir.txt

if exist SourcesFor1.txt del SourcesFor1.txt
for /R "%JMETALHOME%\jmetal\problems" %%I in (*.java *.html) do echo %%I>>SourcesFor1.txt

(for /R "%JMETALHOME%\jmetal\problems" %%I in (*.java *.html) do echo %%I)>SourcesFor2.txt

DIR 은 경로 (절대 또는 상대)와 함께 1 개 이상의 와일드 카드 패턴을 지정해야합니다.

FOR 는 와일드 카드 패턴과 별도로 경로를 지정할 수있는 가능성을 제공합니다.

FOR 는 발견 된 파일 이름을 한 줄씩 >>출력합니다.이 경우 위의 와 같이 FOR실행하기 전에 이미 존재하는 출력 파일을 추가로 삭제하는 리디렉션 연산자를 사용 SourcesFor1.txt하거나 FOR 자체를 블록에 포함하고 >모든 출력을 리디렉션 하는 사용 합니다. SourcesFor2.txt예제 와 같이 이미 존재하는 파일을 덮어 쓰는 파일로의 블록 .

두 번째 FOR에서 블록의 echo %%I닫는 괄호 사이에 공백이 없는지 확인하십시오. )그렇지 않으면이 공백이 출력 파일에 기록 된 각 파일 이름에 추가됩니다 SourcesFor2.txt.

사용 된 명령과 작동 방식을 이해하려면 명령 프롬프트 창을 열고 다음 명령을 실행 한 다음 각 명령에 대해 표시되는 모든 도움말 페이지를주의 깊게 읽으십시오.

  • del /?
  • dir /?
  • echo /?
  • for /?
  • if /?
  • set /?

명령 리디렉션 연산자 사용 에 대한 Microsoft 문서도 읽어보십시오 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관