Cambiar De Nombre Solo Un Archivo

Cambiar De Nombre Solo Un Archivo
Hola gggirald, resulta que he creado un bat para cambiar el nombre a un archivo solo en este caso es una imagen *.jpg, este bat lo utilizo con el botón derecho del ratón es decir selecciono el archivo y ejecuto el bat.
Pero existe un problema si solo esta ese archivo en la carpeta lo renombra perfecto, pero cuando hay varias imágenes solo renombra la imagen que por orden alfabético es la primera.
Es decir.
aaa.jpg
Hhhh. Jpg
kkk.jpg
Al seleccionar hhhh.jpg que es la que quiero cambiar el nombre me cambia aaa.jpg

Respuesta
1

Pon por aquí el bat que utilizas. Si utilizas un renombrado tipo

ren *.jpg loquesea. Ttt

Solo te hace uno porque a los demás intentas darle un nombre que ya existe. Si quieres usar un bat para renombrar de una forma fija un archivo de nombre variable se puede usar un parámetro y "arrastrar" el archivo a renombrar sobre el propio BAT.

echo off
ren "*.jpg" "delante.jpg"

Prueba con esto:

@echo off
Ren "%1" delante.jpg

Una vez creado el bat "arrastras" el archivo a renombrar sobre el bat o lo copias y pegas sobre él.

Hola he creado el bat con el código pero no hace nada.

Saludos y Gracias

¡Que raro!

Vamos a ver que se ve con esto:

@echo off
echo ren "%1" delante.jpg
Pause
ren "%1" delante.jpg
dir *.jpg
Pause

Debe hacer lo mismo en realidad, pero con paradas que nos permitan ver lo que había y lo que ha hecho. Copia la ventana de cmd antes de que se cierre y la pones por aquí

Ya sé lo que pasa.

El bat debería ser:

@echo off
Ren "%~1" delante.jpg

Y el de pruebas:

@echo off
echo ren "%~1" delante.jpg
Pause
ren "%~1" delante.jpg
echo dir "%~dp1*.jpg"
dir "%~dp1*.jpg"
Pause

Hola gggirald, los dos bat funcionan perfectamente muchísimas gracias por todo.

Tengo otra consulta si quieres abro otro hilo.

Tiempo atrás me hiciste un bat que mueve carpetas dentro de otra que funciona perfectamente.
@echo off
set carpeta=C:\Users\Toni\Desktop\01 - Comprimir
cd %carpeta%
for /f "tokens=*" %%a in ('dir /b *.* ^| find " -"') do call :tratar %%a
goto :eof
:tratar
set nombre=%1
set control=N
:bucle
if "%1"=="" (
md "%carpeta%\%sub%"
move "%carpeta%\%nombre%" "%carpeta%\%sub%"
goto :eof
)
if %control%==N set sub=%nombre%&set sig=%2
set nombre=%nombre% %2
if "%sig:~0,1%"=="-" if %control%==N set control=S
shift
goto :bucle


La pregunta es se podría hacer uno que mueva carpeta dentro de otra pero solo con la primera letra, en plan Abecedario.
Ejemplo:
Luis tiene - 40 años
Antonio tiene - 10 años
Lola tiene - 16 años
Que quedara así:
En la carpeta L\Luis tiene - 40 años
L\Lola tiene - 16 años
En la carpeta A\Antonio tiene - 10 años

Saludos Gracias.

No es necesario que abras otra pregunta. Pero, por coherencia, pondré la respuesta a esto en el hilo original:

Crear Un Batch Que Mueva Carpetas Dentro De Otra Carpetas Con Parte Del Nombre De La Carpeta

Otra cosa, cuando copies "código" (en este caso el texto de un BAT) resulta más legible si lo incluyes en un "SNIPPET", que es como la página llama a la ventanita que se abre cuando se pulsa en el icono "<>" de la barra de herramientas que la propia página te presenta en el rectángulo superior de la zona de escritura (tercer icono desde la derecha).

Ok Gracias.

Es que no sabia como hacerlo lo del "SNIPPET".

Saludos.

Ya lo suponía.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas