Test Foro de elhacker.net SMF 2.1

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:


@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:

setlocal enabledelayedexpansion

Pruebalo así y comenta:

Código (dos) [Seleccionar]
@echo off
setlocal enabledelayedexpansion
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  /a contador=0
for /F "tokens=1,4*" %%i in ('dir') do (
set /a contador+=1
echo  %%j %%k !Historia!_!Ojo!_!contador!_%%i.txt
)
pause
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
http://foro.portalhacker.net/index.php/topic,86033.0.html