Excluindo arquivos de extensão específica usando o comando DIR na linha de comando do Windows

Excluindo arquivos de extensão específica usando o comando DIR na linha de comando do Windows

se eu quiser ver, por exemplo, arquivos de uma extensão específica usando apenas a listagem de diretórios, posso fazer isso usando o comando:

DIR *.txt 

E mostra todos os arquivos com .txtextensão.
Agora quero saber se existe algum comando com o qual posso excluir certas extensões?
Por exemplo, não quero ver nenhum arquivo com extensão .exe, como posso fazer isso?

Responder1

DIR não permitirá o que você está tentando fazer. No entanto, o DIR junto com o FINDSTR podem resolver isso.

por exemplo, o seguinte ignora todos os arquivos .txt na listagem DIR.

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

Responder2

dir /B | find /V ".txt"

Isso listaria todos os arquivos e encontraria filtrar qualquer coisa que não contenha ".txt". Está longe de ser perfeito, mas talvez seja o suficiente :)

Responder3

Depende do seu interpretador de comandos.

A Microsoft cmdnão possui esse recurso, como você pode ver nas outras respostas onde é necessário pós-processar a saída de dir. No entanto, a ferramenta deTCC/LE da JP Softwaretem esse recurso. É chamado deintervalo de exclusão de arquivoe é usado assim no exemplo da sua pergunta:

dir /[!*.exe] *

Responder4

Para isso, defina uma macro usando DOSKEY. Excluí diretórios e ignorei o caso – YMMV. Além disso, parece ser a opção /Bmais razoável para filtragem , sendo inadequada para a tarefa, e os formatos longos (padrão) e contendo, em alguns casos, texto adicional após o nome do arquivo (para links simbólicos). Confira na linha de comando:DIR/D/W/N/X

DOSKEY  FIR=DIR/B/A-D^|FINDSTR /VIE $*
DOSKEY FLIR=DIR/X/A-D^|FINDSTR /VIE $*

FIRparafiltrado DIR, pegue? :) E FLIRpara a versão longa, se necessário. Então use assim:

fir .jpg
flir jpg
fir "jpg htm"

O último se deve à forma como FINDSTRos padrões de leitura são fornecidos como argumentos, conforme documentado no arquivo /?. Apenas o primeiro argumento é tratado como um padrão, os adicionais são interpretados como nomes de arquivos, mesmo quando executados em um pipe.

Eu prefiro FINDSTRsimples FINDporque tem a /Eopção funky que filtra apenas no final da linha, o que parece preferível ao filtrar por extensão de arquivo (mas, novamente, YMMV).

O práticoLocal SS64explica como configurar macros em um TXTarquivo para reutilização permanente. Cuidado, não há circunflexo ^para escapar de caracteres especiais para macros armazenadas em um arquivo de texto.

Para entender os conceitos básicos de como as macros ("aliases do console") funcionam nos bastidores, leiaBreves comentários de Eryk Sun sobre SO.

informação relacionada