Interface da linha de comandos
O Windows XP não fornece uma maneira de listar arquivos compactados prontos para uso, e até mesmo os métodos de pesquisa avançada não são projetados para essas tarefas. O prompt de comando vem para o resgate:
cd /d "C:\Some folder"
compact | findstr /c:" 1 C"
O comando cd
é simplesmente usado para navegar para o diretório de destino. Quando o comando compact
é executado sem parâmetros, ele listará todos os arquivos junto com seus detalhes de compactação, se houver. A saída pode então ser filtrada redirecionando-a para findstr
. Para o que vale a pena, esse método deve funcionar mesmo no Windows 2000.
Ainda assim, a saída é bastante detalhada. Para retirar as informações extras, é necessário mais algum trabalho:
for /f "tokens=9,*" %A in ('"compact | findstr /c:" 1 C" "') do @dir /b "%A*%B" 2>nul
O comando acima exibirá apenas nomes de arquivos compactados. O comando dir
ajudará a validar os nomes dos arquivos para evitar falsos positivos (por exemplo, aqueles que contêm a string 1 C
em seus nomes).
Parâmetros adicionais que você pode usar são:
-
/s
Aplica o comando a todas as subpastas. -
/a
Exibe arquivos ocultos ou do sistema.
Observe que esses parâmetros devem ser usados para os comandos compact
e dir
, se necessário.
Para listar arquivos descompactados, você pode usar o parâmetro /v
do comando findstr
para reverter o filtro e alterar o valor tokens
para 8
(isso porque os arquivos descompactados não têm o C
marcador, que afeta a string tokenização ).
Leitura adicional
Sintaxe de consulta avançada
Windows Search queries are specified in Advanced Query Syntax (AQS) which supports not only simple text searches but provides advanced property-based query operations as well.
O AQS foi introduzido pela primeira vez com o Windows Desktop Search, que foi posteriormente aprimorado e integrado ao Windows Vista como Windows Search . Você precisa instalá-lo separadamente em sistemas operacionais anteriores.
A consulta a seguir listará todos os arquivos que possuem o atributo de archive definido e são compactados. Ele funciona no Windows XP, Vista e 7. Ele também deve funcionar no Windows 8.x, embora eu não tenha testado.
System.FileAttributes:(2080)
Em localidades em inglês, você também pode usar:
attributes:(2080)
Veja uma lista dos valores mais úteis:
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
No exemplo acima, combinei FILE_ATTRIBUTE_ARCHIVE
e FILE_ATTRIBUTE_COMPRESSED
: 32 + 2048 = 2080
.
Você pode pesquisar qualquer combinação usando o operador OR
lógico. Por exemplo, para pesquisar arquivos compactados que são somente leitura ou não:
System.FileAttributes:(2080 OR 2081)
Para inverter os resultados da pesquisa, você pode usar o operador NOT
:
System.FileAttributes:NOT(2080 OR 2081)