배치 파일; 디렉토리에 파일을 나열하고 파일 이름 만?


120

이것은 아마도 매우 간단한 질문 일 수 있지만 문제가 있습니다. 기본적으로 배치 파일을 작성하려고하는데 특정 디렉토리의 모든 파일을 나열하는 데 필요합니다. 이 dir명령은이 작업을 수행하지만 다른 정보도 제공합니다. 파일 이름 만 나열 하고 다른 것은 제외 하고 싶습니다 .

출력이 다음과 같기를 원합니다.

file1.txt
file2.txt
file3.txt

미리 감사드립니다!


답변:


236

전체 명령은 다음과 같습니다.

dir /b /a-d

나눠 보자.

기본적으로 /b당신이 찾는 것입니다.

/a-d 디렉토리 이름을 제외합니다.


자세한 내용 dir /?dir명령 과 함께 사용할 수있는 다른 인수를 참조하십시오 .


8
나에게 괜찮아요 :) dir /b /a-d > tmp.txt
Stéphane GRILLON

2
/S하위 디렉터리의 파일 이름도 가져 오는 데는 작동하지 않습니다 .
Farhan Ghumra

@xyroid 당신은 셀텐을 읽었습니까 /a-d will the exclude directory names?
Stephan

4
하위 디렉터리의 파일 이름을 인쇄하려는 경우 제외되지 않습니다.
Farhan Ghumra

이것은 내가 필요한 것에 매우 가깝습니다. 나는 절대 경로와 하위 디렉토리에 대한 재귀가 필요했습니다. 내가 사용한 것은 다음과 같습니다.dir /B /A-D /S
EmpathicSage

34

다음을 시도해 볼 수도 있습니다.

for %%a in (*) do echo %%a

for루프를 사용 echo하여 현재 디렉토리의 모든 파일 이름을 출력 할 수 있습니다 .

콘솔에서 직접 인쇄하려면 :

for %a in (*) do @echo %a

7

하위 디렉터리도 필요하면 "dir"명령과 "For"명령이 필요합니다.

dir /b /s DIRECTORY\*.* > list1.txt

for /f "tokens=*" %%A in (list1.txt) do echo %%~nxA >> list.txt

del list1.txt

dir 명령에 루트 디렉토리를 넣으십시오. 전체 경로 이름으로 list1.txt를 만든 다음 파일 이름 만있는 list.txt를 만듭니다.


5

1. 메모장 열기

2. 새 파일 생성

3. 벨로우 라인 입력

dir /b > fileslist.txt

4. " list.bat"저장

그게 다야. 이제이 " list.bat"파일을 폴더 위치에 복사하여 붙여넣고 두 번 클릭하면 fileslist.txt해당 디렉토리 폴더 및 파일 이름 목록과 함께 " " 이 생성 됩니다.

샘플 출력 : 여기에 이미지 설명 입력

참고 : 하위 폴더와 함께 파일 이름 목록을 생성하려면 다음 코드로 배치 파일을 생성 할 수 있습니다.

dir /b /s > fileslist.txt

2
출력 파일 "fileslist.txt"를 목록에 포함하지 않으려면 어떻게합니까?
Behnam

4
  • where대신 사용 하지 않는 이유는 무엇 dir입니까?

명령 줄에서 :

for /f tokens^=* %i in ('where .:*')do @"%~nxi"

bat / cmd 파일 :

@echo off 

for /f tokens^=* %%i in ('where .:*')do %%~nxi
  • 산출:

file_0003.xlsx
file_0001.txt
file_0002.log
where .:*
  • 산출:

G:\SO_en-EN\Q23228983\file_0003.xlsx
G:\SO_en-EN\Q23228983\file_0001.txt
G:\SO_en-EN\Q23228983\file_0002.log

재귀 적으로 :

where /r . *
  • 산출:

G:\SO_en-EN\Q23228983\file_0003.xlsx
G:\SO_en-EN\Q23228983\file_0001.txt
G:\SO_en-EN\Q23228983\file_0002.log
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0004.docx
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0005.csv
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0006.odt
  • For 루프는 경로와 이름을 얻습니다.

  • 명령 줄에서 :
for /f tokens^=* %i in ('where .:*')do @echo/ Path: %~dpi ^| Name: %~nxi
  • bat / cmd 파일 :
@echo off 

for /f tokens^=* %%i in ('where .:*')do echo/ Path: %%~dpi ^| Name: %%~nxi
  • 산출:

 Path: G:\SO_en-EN\Q23228983\ | Name: file_0003.xlsx
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0001.txt
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0002.log

  • For 루프는 경로와 이름을 재귀 적으로 가져옵니다.

명령 줄에서 :

for /f tokens^=* %i in ('where /r . *')do @echo/ Path: %~dpi ^| Name: %~nxi

bat / cmd 파일 :

@echo off 

for /f tokens^=* %%i in ('where /r . *')do echo/ Path: %%~dpi ^| Name: %%~nxi
  • 산출:

 Path: G:\SO_en-EN\Q23228983\ | Name: file_0003.xlsx
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0001.txt
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0002.log
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0004.docx
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0005.csv
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0006.odt


2

윈도우 10:

  1. cmd 열기

  2. 폴더 (d : \ videos \ movies)의 텍스트 파일 (movie_list.txt)을 생성 할 디렉토리를 변경하십시오.

  3. 다음 명령을 입력하십시오

    d : \ videos \ movies> dir / b / ad> movie_list.txt


2

다음 코드로 배치 파일을 만듭니다.

dir %1 /b /a-d > list.txt

그런 다음 디렉토리를 끌어다 놓으면 디렉토리 안의 파일이 list.txt에 나열됩니다.


0

dir / s / d / a : -d "folderpath *. *"> file.txt

하위 폴더의 파일이 필요하지 않으면 / s를 잃어 버리십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.