¿Cómo eliminar la extensión de varios archivos con un Archivo de Lotes de Windows?

publicado por: Anonymous

Necesito eliminar la extensión de archivo de todos los archivos de una carpeta.

Digamos que tengo prueba.txt, prueba2.txt, prueba3.txt, etc...
Y lo que querría obtener es prueba, prueba2, prueba3, etc... sin extensiones de archivo.

He probado a usar el comando ren pero no consigo hacer que elimine solo la extensión de archivo.

Gracias de antemano.

EDIT: se me olvidó mencionar que todos los archivos a renombrar se encuentran en una sub-carpeta llamada input.
No es en la misma carpeta que estaría el Archivo de Lotes

Esto es lo que he intentado:

@ECHO OFF
ren ./input/* ./input/*:.wav =

Me dice que el sistema no puede encontrar el archivo especificado.

UPDATE: Resuelta, gracias a todos.

solución

Renombrar sin extensión

@ECHO OFF
for %%f in (C:prueba*.txt) do (
ren %%f %%~nf
)
pause

El código arriba expuesto recorre el directorio C:prueba filtrando los archivos por la extensión .txt, y ejecuta un ren para renombrar los archivos con su mismo nombre pero sin extensión.

Explicación

El código más sencillo para obtener el nombre sin extensión de un archivo es:

@echo %~n0

Donde 0 es la variable donde almacenamos el nombre del archivo (que recorres en el LOOP), y n es un modificador que devuelve el nombre del archivo sin extensión.

Te comparto un cuadro con más referencias que se pueden utilizar en un búcle LOOP: (referenciado y traducido de SOes

Se pueden utilizar las siguientes variables de referencia para un ciclo FOR:

%~I         - devuelve %I removiendo cualquier comilla doble (").
%~fI        - devuelve %I con su nombre de ruta completo.
%~dI        - devuelve %I solo su letra de unidad.
%~pI        - devuelve %I solo su ruta.
%~nI        - devuelve %I solo su nombre de archivo.
%~xI        - devuelve %I solo su extensión de archivo.
%~sI        - devuelve ruta con nombre abreviados.
%~aI        - devuelve %I los atributos del archivo.
%~tI        - devuelve %I la fecha/hora del archivo.
%~zI        - devuelve %I el peso del archivo.
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *