Windows 명령 행에서 DIR 명령을 사용하여 특정 확장자의 파일 제외


20

디렉토리 목록 만 사용하여 특정 확장자의 파일을보고 싶다면 다음 명령을 사용하여 수행 할 수 있습니다.

DIR *.txt 

그리고 .txt확장명을 가진 모든 파일을 보여줍니다 .
이제 특정 확장명을 제외시킬 수있는 명령이 있는지 알고 싶습니다.
예를 들어, 확장자가있는 파일을보고 싶지 않습니다 .exe. 어떻게 할 수 있습니까?

답변:


27

DIR은 당신이하려는 일을 허용하지 않습니다. 그러나 FINDSTR과 함께 DIR이이를 해결할 수 있습니다.

예를 들어 다음은 DIR 목록의 모든 .txt 파일을 무시합니다.

dir | findstr /v /i "\.txt$" 

2
당신은 헤더를 출력하고 가능한 잘못된 파일과 폴더가 끝날 때 카운트 하기 dir /b | findstr /v /i "\.txt$"때문에 사용할 수 있습니다dir
— phuclv

왜 findstr끝났어 find?
— Sopalajo de Arrierez

find는 텍스트 검색과 findstr이 정규식을 지원하기 때문에 Findstr을 제안했습니다. 정확한 문자열을 검색하려면 찾기도 잘 작동합니다.
— IUnknown

8
dir /B | find /V ".txt"

그러면 모든 파일이 나열되고 ".txt"가 포함되지 않은 항목은 필터링됩니다. 완벽하지는 않지만 충분합니다. :)


/B말할 필요는 없지만 'findstr'(실제로 허용되는 것)이 필요하지 않는 한이 답변을 선호합니다.
— Sopalajo de Arrierez

3

명령 인터프리터에 따라 다릅니다.

Microsoft의 cmd출력은 후 처리해야하는 다른 답변에서 볼 수 있듯이 이러한 기능은 없습니다 dir. JP Software의 TCC / LE 가 수행합니다. 파일 제외 범위 라고하며 질문의 예에서 다음과 같이 사용됩니다.

dir /[!*.exe] *


고맙지 만이 도구는 독립형 프로그램으로 실행되는 것 같습니다. 우분투에서 Windows 셸 또는 bash를 사용하여 외부 프로세스를 실행하는 응용 프로그램을 만들고 있으므로이 도구가 적합하지 않습니다 .cmd 라인 스위치를 제공하면 유용합니다.
— Johnydep

1
분명히 aforegiven는 것입니다 명령 줄 스위치. 하이퍼 링크 문서를 읽으십시오. 물론, 대부분의 프로그래밍 언어에서 디렉토리 내용 을 얻기 위해 쉘을 사용하는 길이는 매우 어리석은 일이며 응용 프로그램을 작성하기 위해 잘못된 StackExchange에 있습니다.
— JdeBP

설명 주셔서 감사합니다, 그것은 사실이지만 그것은 상승이 필요한 디렉토리를 스캔하기위한 해결 방법이며 높은 권한을 요구하지 않고 cmd 프롬프트에서 결과를 얻을 수있을 때 코드를 UAC 프롬프트로 트리거하고 싶지 않습니다.
— Johnydep
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.