2009-05-07 6 views

Respuesta

12

Creo que hay una opción/v para findstr que es equivalente a grep -v (incluya todas las líneas que no lo hacen contener el texto así que estaría mirando:

dir | findstr /vi ".pdf" 

El sintaxis puede ser ligeramente diferente, no he tenido mucha necesidad de usarlo y me don'r ejecutar Windows en mi ubicación actual.

uso findstr /? desde un símbolo del sistema para obtener más información.

O, si instala CygWin (mi herramienta de elección para t su tipo de cosas), puede simplemente utilizar grep en sí:

ls -al | grep -vi '\.pdf$' 

Adición:

que en realidad no se dio cuenta, pero al parecer findstr también apoyan expresiones regulares para que pueda utilizar:

dir | findstr /vi "\.pdf$" 

exactamente lo mismo que grep (no lo he probado, solo lo encontré en TechNet, por lo que tendrá que probarlo usted mismo).

+0

+1 Parece que funciona, buen trabajo. –

+0

Gracias, @Andrew, realmente no quería arrancar VMWare Player solo para probarlo :-) – paxdiablo

+0

Funciona muy bien. ¡Gracias! –

3

Se pueden combinar con findstr dir a casi hace lo que quiere:

dir * | findstr /vi .pdf 

en cuenta sin embargo, que si un archivo se llama my.pdf.converted.txt, que será lanzado de forma incorrecta de distancia aquí.

Si realmente desea conseguir la suposición, aquí es una versión completamente correcto, más apropiado para un archivo por lotes:

for /f %a in ('dir /b *') do @if "%~xa" neq ".txt" echo %a 

Buena suerte, no importa lo que intente :) DOS es "divertido".

+0

Con misericordia, no estoy lidiando con ningún truco como el ejemplo de "pdf.converted.txt". Buena captura, sin embargo! –

+0

findstr en XP me dice que puede manejar la expresión regular lo suficientemente bien como para coincidir con el final de la línea de la manera habitual, también – Anonymous

0

Sé que ya está trabajando para usted pero puede hacerlo con la mayoría de las versiones de DOS (al menos las que puedo recordar) así.

Attrib * .bad + H
dir/œ
Attrib * -H .bad

que tiene el efecto de ocultar los que no desee mostrar, haciendo el directorio a continuación, haciéndolos visibles ellas . Es un poco desagradable, debo admitirlo, pero parece ser el truco.

0

En MS-DOS o CMD sólo tiene que teclear para evitar los archivos PDF:

dir | find/V ".pdf" 

Pero recuerde el recuento de archivos en la parte inferior de la salida incluirá el archivo PDF (s).

Además, también puede usar este comando para otras extensiones y reemplazar ".pdf" por ".xxx", donde xxx es cualquier extensión.

0

He aquí una forma sencilla sin necesidad de utilizar findstr/o la tubería encontrar a otro comando:

for %%a in (*) do (
    if not exist %%~Na.pdf echo %%a 
) 

Básicamente el bucle bucle a través de todos los archivos. El "si no existe" se asegurará de que no se imprima ningún archivo * .pdf

El %% ~ Na significa usar el nombre de archivo de %% una variable sin su extensión.

Cuestiones relacionadas