Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: romanjr en 16 Febrero 2011, 02:13 am



Título: [Batch] cambiar ultimos caracteres "ren" [Solucionado]
Publicado por: romanjr en 16 Febrero 2011, 02:13 am
saludos a todos los del foro, una vez mas yo con otra pregunta

como puedo cambiar el nombre de una serie de archivos pero solo su ultimo caracter, es decir tengo varios archivos:

Código
  1. hola_1_nada-.jpg
  2. hola_2_nada-.jpg
  3. ...
  4. ...
  5. hola_10_nada-.jpg
  6. hola_11_nada-.jpg
  7. ...
  8. ...
  9. hola_100_nada-.jpg
como se daran cuenta la cantidad de caracteres varia segun el consecutivo, asi que, ¿ como puedo cambiar el nombre de todos los archivos quitando solo el ultimo caracter?

ya intente con
ren *-.jpg *.jpg
ren *?-.jpg *.jpg
y otras combinaciones pero los resultados son desastrozos
alguna idea... de antemano muchas gracias


Título: Re: cambiar ultimos caracteres "ren"
Publicado por: leogtz en 16 Febrero 2011, 02:40 am
Prueba esto:

Suponiendo que tienes el Batch en donde están las imágenes:

Código
  1. @echo off
  2.  
  3. for /f "tokens=*" %%_ in ('dir /b *.jpg') do (
  4. call:rename "%%_"
  5. )
  6.  
  7. goto:eof
  8.  
  9. set "name=%~n1"
  10. set "name=%name:~0,-1%"
  11. rename %1 %name%.jpg
  12.  


Título: Re: cambiar ultimos caracteres "ren"
Publicado por: romanjr en 16 Febrero 2011, 02:58 am
Gracias leo por contestar, dejame probarlo, te aviso y otra vez gracias


Título: Re: cambiar ultimos caracteres "ren"
Publicado por: leogtz en 16 Febrero 2011, 02:59 am
Acabo de editar el código, copia y pega el nuevo, por favor.

PD: Estoy por contestar a tu otra duda.


Título: Re: [Batch] cambiar ultimos caracteres "ren"
Publicado por: romanjr en 16 Febrero 2011, 07:11 am
stimadoleo... este batch si no se que pase, pero no quita el ultimo caracter del nombre del archivo??? me manda un error que dice:

la sintaxis del comando no es correcta

dejame ver que es lo que estoy haciendo mal de todos modos tu aportacion es  bienvenida

gracias


Título: Re: [Batch] cambiar ultimos caracteres "ren"
Publicado por: romanjr en 16 Febrero 2011, 07:22 am
Estimado leo... ya le di.... como el burro que toco la flauta  :laugh: habia una falta de caracteres  en el codigo, el codigo queda asi:

@echo off

for /f "tokens=*" %%_ in ('dir /b *.jpg') do (call:renombra "%%_")
goto:eof

:renombra
set "name=%~n1"
set "name=%name:~0,-1%"
ren "%~1" "%name%.jpg"

una ve mas gracias a tu codigo pude resolverlo

espero podamos seguir escribiendo y que me sigas aclarando misdudas ya que eres una eminencia.

gracias y saludos