Excluir archivos de una extensión particular usando el comando DIR en la línea de comando de Windows

Excluir archivos de una extensión particular usando el comando DIR en la línea de comando de Windows

Si quiero ver, por ejemplo, archivos de una extensión particular solo usando el listado de directorios, puedo hacerlo usando el comando:

DIR *.txt 

Y muestra todos los archivos con .txtextensión.
Ahora quiero saber si existe algún comando con el que pueda excluir ciertas extensiones.
Por ejemplo, no quiero ver ningún archivo con extensión .exe, ¿cómo puedo hacerlo?

Respuesta1

DIR no permitirá lo que estás intentando hacer. Sin embargo, DIR junto con FINDSTR pueden resolver esto.

Por ejemplo, lo siguiente ignora todos los archivos .txt en el listado DIR.

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

Respuesta2

dir /B | find /V ".txt"

Esto enumeraría todos los archivos y buscaría filtraría todo lo que no contenga ".txt". Está lejos de ser perfecto, pero tal vez sea suficiente :)

Respuesta3

Depende de su intérprete de comandos.

Microsoft cmdno tiene esa función, como puede ver en las otras respuestas en las que hay que posprocesar la salida de dir. Sin embargo, la herramienta deTCC/LE de JP Softwaretiene esta característica. Se llama unrango de exclusión de archivosy se usa así para el ejemplo de su pregunta:

directorio /[!*.exe] *

Respuesta4

Para ello, defina una macro utilizando DOSKEY. Excluí directorios e ignoré el caso: YMMV. Además, /Bparece la DIRopción más razonable para filtrar, /Dy /Wes inapropiada para la tarea, y los formatos largos /N(predeterminado) y /Xcontienen, en algunos casos, texto adicional después del nombre del archivo (para enlaces simbólicos). Compruébalo en la línea de comando:

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

FIRparafiltrado DIR, ¿Consíguelo? :) Y FLIRpara la versión larga si es necesario. Entonces úsalo así:

fir .jpg
flir jpg
fir "jpg htm"

Esto último se debe a la forma en que FINDSTRse leen los patrones proporcionados como argumentos, como se documenta en el archivo /?. Sólo el primer argumento se trata como un patrón, los adicionales se interpretan como nombres de archivos, incluso cuando se ejecutan en una tubería.

Prefiero FINDSTRel simple FINDporque tiene el peculiar /Einterruptor que filtra solo al final de la línea, lo que parece preferible cuando se filtra por extensión de archivo (pero nuevamente, YMMV).

el prácticositio SS64explica cómo configurar macros en un TXTarchivo para su reutilización permanente. Cuidado, no hay signos de intercalación ^para escapar de los caracteres especiales de las macros almacenadas en un archivo de texto.

Para comprender los conceptos básicos de cómo funcionan las macros ("alias de consola"), leaBreves comentarios de Eryk Sun sobre SO.

información relacionada