Windows를 사용하여 확장자 없는 파일을 쉽게 찾는 방법

Windows를 사용하여 확장자 없는 파일을 쉽게 찾는 방법

내 하드 디스크 드라이브에 확장자가 전혀 없는 파일이 몇 개 있습니다. 수동으로 찾는 것은 매우 어렵습니다. 지속적으로 해당 파일을 찾으려고 시도하여 하드웨어에 가해진 광대하지는 않지만 눈에 띄는 손상으로 인해 마우스를 더 빨리 교체해야 한다는 사실이 정말 마음에 들지 않습니다. 단일 폴더에 수천 개 중 수백 개의 파일이 있기 때문에 클릭하고 스크롤합니다.

cmd여기 있는 사람 중에 이 작업을 단순화하는 데 도움이 되는 또는 PowerShell명령이나 일부 Windows 탐색기 검색 고급 쿼리 구문을 아는 사람이 있습니까 ?

답변1

Windows에서 파일 확장자가 없는 파일 찾기

Windows 탐색기 - 고급 쿼리 구문

에 따라PetSerAl여기 그 중 일부가 있습니다파일 탐색기 고급 쿼리 구문시작하는 방법이지만 이에 상응하는 내용을 자세히 읽으십시오.명령줄그리고배치 스크립트이 작업에 대한 방법입니다.

재귀 검색

kind:= -folder type:= -[] extension:= []

비재귀적

"를 선택하면 됩니다.현재 폴더" GUI를 통한 옵션 "찾다" 탭

여기에 이미지 설명을 입력하세요

또는

kind:= -folder type:= -[] extension:= [] folder:"C:\folder\path"

당신은 사용할 수 있습니다/f에 대해루프의 출력을 반복디렉토리/B및 매개변수를 사용하여 명령을 내린 /A-D다음 일부 조건을 사용하세요.만약에지정된 디렉터리에서 반복되는 파일에 대한 대체 항목을 사용하여 확장자가 없는 파일만 출력하는 논리입니다.

명령줄

메모: 이는 명령줄에 있는 디렉터리가 확장자 없이 파일을 표시하기 위해 검색해야 하는 디렉터리라고 가정합니다.

FOR /F "TOKENS=*" %A IN ('dir /B * /A-D') DO IF /I [%~nxA]==[%~nA] ECHO %~A

배치 스크립트

메모: SET Src=확장자 없이 파일을 표시하기 위해 검색해야 하는 디렉터리로 값을 설정하는 배치 스크립트입니다 .

@ECHO ON
SET Src=C:\folder\path
FOR /F "TOKENS=*" %%A IN ('DIR /B "%Src%\*" /A-D') DO IF /I [%%~nxA]==[%%~nA] ECHO %%~A
PAUSE
EXIT

추가 리소스

  • /F의 경우
  • FOR /?

    또한 FOR 변수 참조 대체 기능이 향상되었습니다. 이제 다음 선택적 구문을 사용할 수 있습니다.

    %~nI        - expands %I to a file name only
    %~xI        - expands %I to a file extension only
    
  • 디렉토리

  • 만약에

답변2

PowerShell 솔루션의 경우:

Get-ChildItem -Path $Path -Recurse -File -Filter '*.'

또는:

Get-ChildItem -Path $Path -Recurse -File | Where-Object Extension -eq ''

매개변수 에는 -FilePowerShell v3+가 필요합니다.

답변3

명령 프롬프트에서 다음을 사용하십시오 *..

씨:\디렉토리\이름> 디렉토리

2018년 8월 24일 오전 03:33
2018년 8월 24일 오전 03:33 ..
2018/08/24 오전 03:33 오전 16시
2018/08/24 오전 03:33 기원전 18시
2018/08/24 오전 03:33 20 def
               3개 파일 54바이트

씨:\디렉토리\이름> 디렉토리 *.

2018년 8월 24일 오전 03:33
2018년 8월 24일 오전 03:33 ..
2018/08/24 오전 03:33 오전 16시
               1 파일 16바이트

씨:\디렉토리\이름>

Windows 명령 프롬프트는 Unix가 아닙니다. Unix 파일 이름에서는 점(.)는 평범한 문자입니다(점으로 시작하는 파일 이름이 숨겨져 있다는 점만 제외). Unix에서 *e*는 을 포함하는 모든 파일 이름을 의미 e하고 는 *.*를 포함하는 모든 파일 이름을 의미합니다.(명시적으로)포함..

명령 프롬프트의 규칙은 더 까다롭습니다.  *모든 파일 이름(확장자가 있는 파일도 포함)을 의미합니다. 또한 *.*모든 파일 이름을 의미합니다(.). 그러나 *.확장자가 없는 모든 파일 이름을 의미합니다.

답변4

ls | ? {$_.Extension -eq ''}

이것은 최대 속기를 사용합니다. 하지만 실제로는 @BaconBits와 동일한 코드입니다. 나는 속기를 선호합니다. 초보자가 읽기에는 어렵지만 표현력이 풍부하고 간결합니다.

관련 정보