Windows 탐색기에서 압축되거나 압축되지 않은 파일을 검색하려면 어떻게합니까?


3

Windows 탐색기가 일반보기 및 검색보기에서 파일의 NTFS 압축 상태를 채색 할 수 있다는 것을 알고 있습니다.

NTFS 수준에서 압축되거나 압축되지 않은 파일을 구체적으로 필터링 / 검색하려면 어떻게해야합니까?

가급적이면 Windows XP 이상에서 작동하는 솔루션 (비스타와 그 이상을 위해 사용할 수있는 드라이버가없는 하드웨어 장치가 꽤 있음).

Windows Search는 너무 CPU 집약적이므로 솔루션이 필요하지 않습니다.

답변:


6

명령 줄 인터페이스

Windows XP는 압축 파일을 기본적으로 나열하는 방법을 제공하지 않으며 고급 검색 방법조차 이러한 작업을 위해 설계되지 않았습니다. 명령 프롬프트는 다음과 같이 구성됩니다.

cd /d "C:\Some folder"
compact | findstr /c:" 1 C"

그만큼 cd 명령은 단순히 대상 디렉토리로 이동하는 데 사용됩니다. 때 compact 명령이 매개 변수없이 실행되면 압축 세부 정보가있는 경우 모든 파일을 나열합니다. 그런 다음 출력을 다음으로 리디렉션하여 필터링 할 수 있습니다. findstr. 가치있는 일인이 방법은 Windows 2000에서도 작동합니다.

그래도 결과는 매우 장황합니다. 추가 정보를 제거하려면 더 많은 작업이 필요합니다.

for /f "tokens=9,*" %A in ('"compact | findstr /c:" 1 C" "') do @dir /b "%A*%B" 2>nul

위의 명령은 압축 된 파일 이름 만 표시합니다. 그만큼 dir 명령은 위양성을 피하기 위해 파일 이름의 유효성을 검사하는 데 유용합니다 (예 : 문자열 1 C 그들의 이름으로).

사용할 수있는 추가 매개 변수는 다음과 같습니다.

  • /s 모든 하위 폴더에 명령을 적용합니다.
  • /a 숨겨진 파일이나 시스템 파일을 표시합니다.

이 매개 변수는 다음과 같이 사용되어야합니다. compactdir 필요한 경우 명령.

압축되지 않은 파일을 나열하려면 /v 매개 변수 findstr 명령을 사용하여 필터를 뒤집고 tokens 가치 8 (압축되지 않은 파일에는 C 마커. 문자열에 영향을 미칩니다. 토큰 화 ).

추가 읽기


고급 쿼리 구문

Windows 검색 쿼리는 간단한 텍스트 검색을 지원할뿐만 아니라 고급 속성 기반 쿼리 작업도 제공하는 고급 쿼리 구문 (AQS)에 지정됩니다.

출처: Windows 검색 - 고급 쿼리 구문

AQS는 Windows 데스크톱 검색과 함께 처음 소개되었으며 나중에 Windows Vista로 개선되고 통합되었습니다. Windows 검색 . 너는 ~해야 해. 따로 설치 이전 운영 체제에서는.

다음 쿼리는 아카이브 속성이 설정되고 압축 된 모든 파일을 나열합니다. Windows XP, Vista 및 7에서 작동합니다. 테스트하지는 않았지만 Windows 8.x에서도 작동해야합니다.

System.FileAttributes:(2080)

영어 로켈에서 다음을 사용할 수도 있습니다.

attributes:(2080)

다음은 가장 유용한 값 목록입니다.

FILE_ATTRIBUTE_READONLY = 1
FILE_ATTRIBUTE_HIDDEN = 2
FILE_ATTRIBUTE_SYSTEM = 4
FILE_ATTRIBUTE_ARCHIVE = 32
FILE_ATTRIBUTE_COMPRESSED = 2048
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192

위의 예에서 나는 결합했다. FILE_ATTRIBUTE_ARCHIVEFILE_ATTRIBUTE_COMPRESSED: 32 + 2048 = 2080.

논리를 사용하여 모든 조합을 검색 할 수 있습니다. OR 운영자. 예를 들어, 읽기 전용인지 아닌지 압축 된 파일을 검색하려면 다음을 수행하십시오.

System.FileAttributes:(2080 OR 2081)

검색 결과를 뒤집으려면 NOT 운영자:

System.FileAttributes:NOT(2080 OR 2081)

추가 읽기


감사. XP와 Windows 2003 Server에서는 지원되지 않으므로 (대부분의 Windows XP 드라이버는 내년 EOL이 적용되는 Windows 2003 Server R2에서도 작동합니다). 명령 줄에서 검색을 수행하는 방법을 설명하는 또 다른 대답을 작성하고 동의하지 않습니다.
Jeroen Wiert Pluimers

@ JeroenWiertPluimers 원래 질문에서 대상 운영 체제를 지정하지 않았으므로 최신 운영 체제 만 고려했습니다. Windows XP와 마찬가지로 가장 기본적인 기능은 Windows Search 4.0 .
and31415

죄송합니다. 검색은 CPU 사용량이 많아서 결코 고려하지 않을 것입니다. 질문에 대한 새 편집을합니다.
Jeroen Wiert Pluimers

1
@JeroenWiertPluimers 제 3 자 소프트웨어없이 명령 줄 방법을 포함하도록 답변을 업데이트했습니다.
and31415

1
@ JeroenWiertPluimers 미국 이외의 설치를 사용하여 테스트했습니다. 수여, 나는 시험하지 않았다. 모든 언어. 가능한 한 로케일 독립적 인 명령을 만들려고했지만 적응해야 할 수도 있습니다. 귀하의 요구 사항을 감안할 때 사전에 대상 OS가 무엇인지 알지 못한다면 예상대로 작동하는 솔루션을 확신 할 수 있습니다. 실제로 FindCompressed와 같은 특수한 타사 도구가 실제로 사용할 수있는 방법 일 것입니다.
and31415

0

및 3,1415 게시 됨 Windows 탐색기를위한 멋진 솔루션 적어도 Windows 7 이상에서는 작동합니다 (Vista에서는 나중에 확인합니다).

따라서 XP 나 2003 같은 구형 Windows 버전의 경우 압축 된 파일이나 압축되지 않은 파일의 목록을 생성 할 수있는 명령 줄 솔루션을 연구했습니다.

Compact: 멋지지만 출력물을 분석하기 어렵다.

첫 번째 아이디어는 콤팩트 Windows와 함께 제공됩니다.

실제로 파일을 나열 할 수 있습니다 (매개 변수에 공백이 있으면 큰 따옴표로 묶습니다).

compact [filemask] /a /s:[directoryname]

형식은 사람이 읽기 쉽지만 구문 분석하기는 쉽지 않습니다.

FindCompressed는 다음과 같은 목록을 제공하는 긴 경로 이름을 가진 버그가 있습니다.

C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Help\en\DRS41\wwhelp\wwhimpl\common\htmlinit3.htm
C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Help\en\DRS41\wwhelp\wwhimpl\common\htmlpagenav.htm
...
C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Help\en\DRS41\wwhelp\wwhimpl\common\html\imagessplash.jpg
C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Help\en\DRS41\wwhelp\wwhimpl\common\imagestoolsbg.gif
...
C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Help\en\DRS41\wwhelp\wwhimpl\common\scriptsunidata.js

그래서 이름이 너무 길어지면 파일이나 디렉토리의 일부를 자릅니다.

# FindCompressed: 좋은, 출력 첫 번째 / 마지막 줄을 박탈해야합니다.

Exodus Development는 명령 줄 도구를 작성했습니다. FindCompressed . 매개 변수가 없으면 압축 된 파일을 찾습니다. 와 더불어 -su 매개 변수를 사용하면 압축되지 않은 파일을 찾습니다. 넣다 [directoryname] 공백이 들어 있으면 큰 따옴표로 묶습니다.

FindCompressed.exe -su [directoryname]

FindCompressed 단점이 있습니다.이 행은 항상 #이 [directoryname] 인 출력을 시작합니다.

Recursive search of compact #.

다음과 같은 줄로 끝납니다.

Found # uncompressed files in # items examined. 

이들 사이의 줄에는 압축되지 않은 파일 이름이나 압축 된 파일 이름의 전체 경로가 포함됩니다.
그것은 파싱하기 쉽습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.