Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Hanzo_lx en 29 Abril 2010, 22:33 pm



Título: Ayudita con duda en este script
Publicado por: Hanzo_lx en 29 Abril 2010, 22:33 pm
HOla a todos a ver si vosotros veis el fallo porque me estoy volviendome loco:

estaba haciendome un bat para renombrar unos archivos segun mis necesidades y me queda algo asi:

Código:
@echo off

echo             =========================================
echo             =                                                                                       =
echo             =             Renamer                                                             =
echo             =                                                                                       =
echo             =========================================




:data


set /p Historia=Escriba el numero de historia:

set /p Ojo=Escriba el tipo de ojo:

echo             =========================================
echo               Los datos son correctos?    
echo               Numero de historia: %Historia%     
echo               Tipo de ojo: %Ojo%     
echo             =========================================

set /p respuesta=1 es Si, 2 es NO:

if %respuesta% EQU 1 (goto :renombrar) else (goto :data)




:renombrar
set  contador=0


for /F "tokens=1,4*" %%i in ('dir') do (
                         set /a contador=%contador%+1

echo  %%j %%k %Historia%_%Ojo%_%contador%_%%i.txt)


pause

el tema es que debe renombrar los archivos con nombre de historia+tipo+contador de archivo+fecha de creacion de archivo

el contador lo inicializo a cero y en cada iteracion deberia aumentar en 1 pero siempre me saca 0 y no caigo en que estoy haciendo mal

la primera parte del echo es el nombre del archivo original para esa iteracion (%%j %%k) y la segunda parte(%Historia%_%Ojo%_%contador%_%%i.txt) como deberia quedar despues del renombrado

que os parece?

gracias


Título: Re: Ayudita con duda en este script
Publicado por: leogtz en 29 Abril 2010, 23:38 pm
Dentro de bucles FOR, debes de utilizar las variables con !!, y claro, anteponiendo la sentencia:

Código:
setlocal enabledelayedexpansion

Pruebalo así y comenta:

Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo             =========================================
  4. echo             =                                                                                       =
  5. echo             =             Renamer                                                             =
  6. echo             =                                                                                       =
  7. echo             =========================================
  8. :data
  9. set /p "Historia=Escriba el numero de historia: "
  10. set /p "Ojo=Escriba el tipo de ojo: "
  11. echo             =========================================
  12. echo               Los datos son correctos?    
  13. echo               Numero de historia: %Historia%      
  14. echo               Tipo de ojo: %Ojo%      
  15. echo             =========================================
  16. set /p "respuesta=1 es Si, 2 es NO: "
  17. if %respuesta% EQU 1 (goto :renombrar) else (goto :data)
  18. :renombrar
  19. set  /a contador=0
  20. for /F "tokens=1,4*" %%i in ('dir') do (
  21. set /a contador+=1
  22. echo  %%j %%k !Historia!_!Ojo!_!contador!_%% style="color: #448888;">i.txt
  23. )


Título: Re: Ayudita con duda en este script
Publicado por: Hanzo_lx en 30 Abril 2010, 00:29 am
Hola muchisimas gracias, podrias comentarme donde hace referencia esto que me has explicado en el manual de BATCH que hay en esta misma pagina?

es para leermelo y entenderlo bien

de nuevo muchas gracias


Título: Re: Ayudita con duda en este script
Publicado por: leogtz en 30 Abril 2010, 00:33 am
Código:
http://foro.portalhacker.net/index.php/topic,86033.0.html