
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 .txt
extensió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 cmd
no 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, /B
parece la DIR
opción más razonable para filtrar, /D
y /W
es inapropiada para la tarea, y los formatos largos /N
(predeterminado) y /X
contienen, 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 $*
FIR
parafiltrado DIR
, ¿Consíguelo? :) Y FLIR
para 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 FINDSTR
se 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 FINDSTR
el simple FIND
porque tiene el peculiar /E
interruptor 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 TXT
archivo 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.