답변:
다음 명령을 사용하십시오.
dir /b /a /s
출력을 파일로 저장해야하는 경우 다음을 사용할 수 있습니다.
dir /b /a /s >> list_of_names.txt
편집 실제로 위의 솔루션은 원래 질문의 목표에 도달하지 못합니다. 질문에서 내가 알았던 한 가지는 게시물이 재귀 목록을 요구한다는 것입니다. 다른 답변이 부족하므로 다른 답변자의 답변에 "/ s"를 추가하면 트릭을 수행 할 것이라고 생각합니다.
for /f %a in ('dir /b /s') do @echo %~na
이 시도:
for /f "delims=" %a in ('dir /b /s') do @echo %~na
작동 방식 및 작동 방식에 대한 자세한 정보 for /?
>> filename.txt
for /r %i in (*) do @echo %~ni
또는
forfiles /s /c "cmd /c if @isdir==FALSE noquotes.bat @fname"
이 내용으로 % PATH %에 파일 noquotes.bat
을 가정
@echo %~1
/ r 접근 방법 설명
for /r
현재 디렉토리를 재귀 적으로 탐색하고 (디렉토리를 지정할 수 for /r drive:\path\
있으며, 현재 디렉토리가 가정 됨) set에서 일치하는 각 파일에 대해 do로 지정된 명령을 실행합니다 (*)
. 세트 (.)
는 디렉토리 만 일치합니다. @echo % ~ ni이 명령은 프롬프트에서 그대로 작동합니다. 배치 파일에 넣으면 따옴표를 두 배로하십시오. 즉for /r %%i in (*) do @echo %%~ni
forfiles 접근 방식 설명
/s
현재 열거하고 모든 하위 디렉토리는
/c
따옴표 안에 명령을 실행
@isdir
하고 @fname
명령 문자열로 방출을 상징하는
여분의 배치 파일 noquotes.bat
% ~ 1 (파라미터 1)와 이중 따옴표를 제거함으로써 도움이
forfiles
또한 당신이에서 시작하는 경로를 지정할 수 있습니다을forfiles /P C:\Windows ...
디렉토리가 아닌 속성을 사용하여 모든 파일을 반복적으로 나열합니다 (파일 만 해당).
dir / B / S / A : -D
C : \ test \ cache> dir / B / S / A : -D
C : \ test \ cache \ 7 \ 0f \ 7b50ed0522645513da90345120eaf0f7 C : \ test \ cache \ d \ 23 \ 814644aa6a8195c91e54d2f7bb64e23d
dir /b /s
재귀 적으로 스캔 하려고 시도 할 때 파일 이름 앞에 파일 경로가 생겼으므로 원하지 않습니다.”따라서 OP에 이미 시도한 내용에 대한 사소한 변형을 시도하도록 OP에 지시하고 있습니다. 그것은 OP가 그것을 시도했을 때와 같은 결과를 만들어 낸다 (즉, 그들이 원하는 것이 아님).