주어진 경로의 모든 파일과 디렉토리를 전체 경로로 나열하지만 재귀 적이 지 않은 방법은 무엇입니까?


14

어떻게 든 dir /b명령을 좋아 하지만 숨겨진 시스템 파일도 필요합니다. 내장 된 dir 명령은 나머지 '숨겨진'파일을 나열 할 수 /s없으며 전체 경로를 가지고 있어야합니다 . 물론 비 재귀 적입니다.

나는 또한 Windows 버전의 ls명령을 가지고 놀았 으며 운도 없습니다. 전체 경로를 표시하려면 mydir\*나열하는 디렉토리의 끝에 별표 ( )를 추가해야 하지만 재귀가됩니다.


1
문제의 일부를 해결할 수 있습니다. / a 플래그는 dir에 숨겨진 파일과 시스템 파일을 포함시킵니다.
Harry Johnston

답변:


9

아무것도 설치하지 않으려면 다음 명령을 사용할 수도 있습니다.

for /f "delims=" %a in ('cd') do @for /f %b in ('dir /b /a') do @echo %a\%b

cd먼저 디렉토리 에 들어가야합니다. 그렇지 않으면 작동하지 않습니다.


2
아니면 이거! / f "delims ="% b in ( 'dir / b / a') @@ echo % cd % \ % b하지만 당신의 흥미로운 기법은 매우 일반적인 것입니다
barlop

이 명령이 어떻게 작동하는지 설명해 주시겠습니까?
rubo77

18

다음 명령을 시도하십시오 :

dir /s /b /a

모든 파일을 제공 FIND하므로 폴더 이름을 원하거나 추가하면 파일을 실행할 수 있습니다 .


1

ls를 시도했다면 cygwin을 설치하십시오. cygwin에서 find를 사용할 수 있습니다 :

find -name "*"

cygwin을 설치하고 cygwin에서 find를 사용하려면, Windows에도 find.exe가 있기 때문에 cygwin에서 찾기가 전체 경로를 사용하여 호출되는지 확인하거나 system32 앞에 cygwin bin 경로를 삽입하십시오.


나는 유닉스 유틸리티를 확인, 찾기 재귀 :(
rsk82

2
@ rsk82 :와 함께 -maxdepth 1하지 않습니다.
Dennis

0

gnuwin32로 sed를 다운로드 할 수 있습니다. 현재 디렉토리 앞에 붙습니다.

% cd %를 수행하면 작동하지 않습니다. 그래서 %cd:\=\\%every \를 로 변환 하여 \\결과를 얻습니다 \.

C:\WINDOWS>dir /b | sed "s/^/%cd:\=\\%\\/" 
C:\WINDOWS\0.log
C:\WINDOWS\003109_.tmp
C:\WINDOWS\addins

0

이것은 오래된 질문이지만 어쨌든 무언가를 추가 할 것이라고 생각했습니다.

DIR은 원하는 모든 디렉토리 트리, 특히 C :의 디렉토리 트리를 올바르게 통과하지 않습니다. 그것은 다른 보호로 인해 단순히 장소에서 포기합니다.

ATTRIB은 더 많은 것을 찾기 때문에 훨씬 잘 작동합니다. (이러한 이유는 무엇입니까? 왜 MS는 하나의 유틸리티를 이런 식으로 다른 방식으로 만들고 다른 것을 다른 방식으로 다르게 만드는 것입니까? 아는 경우 저주를 받으십시오.) 경험상이 문제를 처리하는 가장 효과적인 방법은 문제이지만, 두 가지 목록을 얻는 것입니다.

attrib /s /d C:\ >%TEMP%\C-with-directories.txt

attrib /s C:\ >%TEMP%\C-without-directories.txt

그들 사이의 차이를 얻습니다. 그 차이점은 C :의 디렉토리입니다 (너무 잘 숨겨져있는 디렉토리는 제외). C :의 경우 일반적으로 관리자 권한으로이 작업을 수행합니다.


0

디렉토리 목록으로 작업하고 싶었으므로 "디렉토리 인쇄"를 Googled로했습니다. 지시 사항을 찾았지만 레지스트리 변경 사항이 포함되어 있습니다. 이것을 사용하지 않고 목록을 사용하고 싶고 인쇄하지 않고 레지스트리를 변경하지 않고 목표를 달성 할 수있는 방법을 찾았습니다. 유틸리티 디렉토리에 저장할 배치 파일 프로그램을 두 개 만들었습니다. 그런 다음 디렉토리를 인쇄하거나 작업하고 싶을 때 적절한 배치 파일을 주제 디렉토리에 복사 한 다음 실행하십시오! 여기 있습니다:

rem PrintThisDirectory.bat
rem Prints the directory where it resides
@echo off
dir %1/-p/o:gn> "%temp%\listing"
start /w notepad "%temp%\listing"

Rem ShowThisDirectory.bat
Rem Displays in Notepad the Directory where it resides
@echo off
dir %1/o:gn> "%temp%\listing"
start /w notepad "%temp%\listing"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.