¿Cómo oculto las extensiones de archivo en un símbolo del sistema / salida de directorio?

9

Lo que quiero hacer parece muy simple:
tengo una carpeta en Windows que contiene elementos de varios tipos, incluidos archivos PDF, archivos TXT y subdirectorios. Estoy escribiendo un archivo .bat de una línea para extraer SOLO los nombres de los archivos PDF en un nuevo archivo de texto.

Hasta ahora esto es lo que tengo en el .bat:

dir *.pdf /b > PDF_LIST.txt

Esto proporciona el siguiente resultado en un archivo PDF_LIST.txt:

A.pdf
B.pdf
C.pdf

Me gustaría eliminar la parte ".pdf" de cada línea en el archivo txt, ya que obviamente ya sé que cada archivo está en formato PDF por el parámetro * .pdf en mi declaración dir.

Esto me facilitaría copiar / pegar todos los nombres de archivo directamente desde el archivo de texto en un documento de Word para una transmisión que estoy enviando a mi cliente. Si puede sugerir una forma mejor o más fácil de obtener la lista de archivos sin usar un archivo por lotes, eso también sería útil.

Sin catarsis
fuente

Respuestas:

18

En tu guión:

for %%i in (*.pdf) do @echo %%~ni >> PDF_LIST.txt
Pausado hasta nuevo aviso.
fuente
Whoa que me deja alucinado (realmente nunca funcionó con la línea de comando). Ok, lo intentaré. ¡Gracias!
NoCatharsis
1
Ver help forpara tener una estimulación craneal adicional.
Pausado hasta nuevo aviso.
Corregí (lo que creo que era) su error tipográfico en el código y ejecuté este comando: para %% i en (* .pdf) do @echo %% ~ ni >> PDF_LIST.txt Recibo la respuesta "%% i fue inesperado en este momento "y ninguna otra salida.
NoCatharsis
2
@NoCatharsis: Perdón por el error tipográfico. En la línea de comando solo use single %. Úselo %%en su archivo por lotes.
Pausado hasta nuevo aviso.
Genial, funciona a las mil maravillas, muchas gracias por la ayuda rápida.
NoCatharsis
0

La mayoría de los editores de texto (incluido el bloc de notas) tienen buscar y reemplazar. Simplemente utilícelo para encontrar todos los ".pdf" y reemplácelos con "". Hecho :)

También puede configurar esto como macro en Word.

Soleado
fuente
Sí, uso Notepad ++ para hacer esto ahora mismo; sin embargo, me preguntaba si había una forma de cortar un paso más escribiéndolo en un script.
NoCatharsis