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.