elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  modificar lineas contenidas en un archivo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: modificar lineas contenidas en un archivo  (Leído 8,352 veces)
romanjr

Desconectado Desconectado

Mensajes: 25


Ver Perfil
modificar lineas contenidas en un archivo
« en: 17 Febrero 2011, 02:23 am »

Hola una vez mas yo... agradeciendo sus respuestas y el apoyo y las enseñanzas recibidas

les mando otro problema para resolver con batch, espero puedan ayudarme.
bueno tengo una serie de archivos .jpg

Código:
crucero 1-bj04.jpg
crucero 2-bj04.jpg
...
...
crucero nn-bj04.jpg

de igual forma tengo unos mapas que son

Código:
map_crucero 1-bj04.jpg
map_crucero 2-bj04.jpg
...
...
map_crucero nn-bj04.jpg

y asi mismo una serie de archivos html (todos tienen el mismo contenido)

Código:
code_crucero 1-bj04.html
code_crucero 2-bj04.html
...
...
code_crucero nn-bj04.html

en la linea 12 de cada html tiene el siguiente codigo
Código:
<p align="center" ><span>Cruceros BJU-04</span></p>

en la linea 13
Código:
<p align="center"><img src="CRUCERO 1-BJ04.jpg" width="624" height="493"></p>

y en la 14
Código:
<p align="center"><img src="mapa 1-BJ04.jpg" width="624" height="493"></p>
 
como puedo hacer para modificar la linea 12 para que en lugar de Cruceros BJU-04 diga el nombre del archivo jpg


como puedo hacer para modificar la linea 13 para que en lugar de CRUCERO 1-BJ04.jpg como texto, coloque el nombre del archivo .jpg que le corresponde segun su propio nombre

y

como puedo hacer para modificar la linea 14 para que en lugar de mapa 1-BJ04.jpg como texto, coloque el nombre del archivo map_*.jpg que le corresponde segun su propio nombre

he estado haciendo lo siguiente, obiamente mal:
Código
  1. @echo off
  2.  
  3. for /f "tokens=*" %%_ in ('dir /B *.jpg') do (call:cambia "%%~_")
  4. goto:eof
  5.  
  6.  
  7. :cambia
  8.  
  9. set lin12=^<p align="center"^>^<span^>"%~n1"^</span^>^</p^>
  10. set lin13=^<p align="center"^>^<img src="%~n1.jpg" width="624" height="493"^>^</p^>
  11. set lin14=^<p align="center"^>^<img src="map_%~n1.jpg" width="624" height="493"^>^</p^>
  12.  
  13. echo ^<p align="center"^>^<span^>"%~n1"^</span^>^</p^>
  14. echo ^<p align="center"^>^<img src="%~n1.jpg" width="624" height="493"^>^</p^>
  15. echo ^<p align="center"^>^<img src="map_%~n1.jpg" width="624" height="493"^>^</p^>
  16.  

pero lo que hace es ponerme tambien los map_*.jpg y esos no quiero, ademas de que ya de aqui no se como entrar al archivo y editarlo para remplazar las lineas correspondientes a las %lin12% %lin13% %lin14%

  alguna opinion

Gracias nuevamente





« Última modificación: 17 Febrero 2011, 06:58 am por Leo Gutiérrez. » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: modificar lineas contenidas en un archivo
« Respuesta #1 en: 17 Febrero 2011, 07:31 am »

Por favor, en cmd.exe teclea el comando edlin y dime si lo tienes disponible, porque es probable que lo use.

Mmm, al parecer el bug de EDLIN no me permitirá usar archivos con espacios, así que tendré que hacer todo a pie.

Bueno, me voy a dormir, mañana si no tengo tarea lo resuelvo, sino hasta el viernes.

Saludos.


« Última modificación: 17 Febrero 2011, 07:50 am por Leo Gutiérrez. » En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
romanjr

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: modificar lineas contenidas en un archivo
« Respuesta #2 en: 17 Febrero 2011, 07:53 am »

ok Leo, gracias y lochecare enwin7 no lo permite pero talvez en vista si igual mañaa lo checo gracias portu ayuda

saludos
En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: modificar lineas contenidas en un archivo
« Respuesta #3 en: 17 Febrero 2011, 09:34 am »

Sabía que Leo te iba a contestar lo del Edlin xD pero mira si no lo puedes usar, tienes como alternativa el SED.exe:

http://gnuwin32.sourceforge.net/packages/sed.htm

No se como adaptarlo para resolver tu problema, supongo que debes usar el for + el sed, pero te explico como uso el sed a ver si así puedes hacer algo por ti mismo... :/


SED "s/PALABRA//Ig;s/OTRAPALABRA[ \t]*$//" "C:\ARCHIVO.HTML" > "C:\ARCHIVO2.HTML"

Con ese código buscas PALABRA y la cambias por OTRAPALABRA en el archivo c:\ARCHIVO.HTML que luego se guarda las modificaciones en ARCHIVO2.html.

Espero que te sirva de algo, saludos.
En línea

No he vuelto, solo estoy de paso.
romanjr

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: modificar lineas contenidas en un archivo
« Respuesta #4 en: 17 Febrero 2011, 16:47 pm »

ok pitoloko gracias por la respuesta lo voy a checar... sin embargo me entra una duda:

en la instruccion sed que das al final dirijes los cambios hechos a un nuevo archivo html, ese puede ser el mismo que se modifica?

por cierto el edlin si me responde en vista, asi que si podria servirme pero esta solucion tambien la voy a probar

 les aviso

de verdad les agradezco mucho sus enseñanzas
« Última modificación: 17 Febrero 2011, 16:49 pm por romanjr » En línea

romanjr

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: modificar lineas contenidas en un archivo
« Respuesta #5 en: 17 Febrero 2011, 20:43 pm »

hola, sigo con lo mismo

oye Leo y Pitoloko mas preguntas... sed puede cambiar lineas completas?, mi pregunta es por lo siguiente, el archivo html que sirve de modelo para crear los demas le puedo cambiar de nombre a modcode.htm, ese al sustituir la linea que quiero cambiar lo renombro ya con el nombre corregido con espacios y demas con esta alternativa talvez si se pueda usar el edlin pero no se aun como sustituir la linea, mi codigo va hasta ahorita mas o menos asi

Código
  1. @echo off
  2.  
  3. for /f "tokens=*" %%_ in ('dir /B *.html') do (call:cambia "%%~_")
  4.  
  5. goto:eof
  6.  
  7. :cambia
  8.  
  9. set a=%~n1_
  10. set a=%a:~4,-1%
  11.  
  12. set lin12=^<p align="center"^>^<span^>"%a"^</span^>^</p^>
  13. set lin13=^<p align="center"^>^<img src="%a.jpg" width="624" height="493"^>^</p^>
  14. set lin14=^<p align="center"^>^<img src="map_a.jpg" width="624" height="493"^>^</p^>
  15.  
  16. set archi=modcode.htm
  17. set lineaa=12
  18. set lineab=13
  19. set lineac=14

+++++ aqui es donde ya me perdi

(
echo %lineaa%
rem echo %lin12%
echo w
echo e
) | edlin /b %archi%


++++ y aqui es donde sustituyo el "archivo virtual" por el bueno

copy "modcode.htm" "cod_%a%.html"


voy bien? o me regreso?????

saludos
« Última modificación: 17 Febrero 2011, 22:56 pm por Leo Gutiérrez. » En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: modificar lineas contenidas en un archivo
« Respuesta #6 en: 17 Febrero 2011, 21:44 pm »

Quedate con el edlin, seguro que es más fácil que el SEd, yo no tengo EDLIN y nunca lo he usado asi que no puedo ayudarte como Leo, por desgracia tampoco se muxo del SED, solo lo uso para su función básica.

1. - Yo he intentado guardar los cambios realizados con el SED sobre el mismo archivo, pero lo único que consigo es "vaciar" todas las lineas así que queda un archivo en blanco... por eso hay que guardarlo en un segundo archivo.

2. - Si que se puede cambiar la linea entera, solo tienes que escribir esa linea dentro de la cadena "PALABRA". Si lo que quieres es cambiarla de otra forma, no se decirte.

A ver si pudieras subir el edlin.exe a mediafire, o algo, que ya me tais dando muxa envidia :(    xD

Saludos.
En línea

No he vuelto, solo estoy de paso.
romanjr

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: modificar lineas contenidas en un archivo
« Respuesta #7 en: 17 Febrero 2011, 23:28 pm »

jajajaj no chicos ... envida la mia que son todos unos masters, te dejo el link para que descargues el edlin

http://www.mediafire.com/file/7yhaobk07x3xyab/edlin.exe

este archivo esta localizado en la ruta c:\windows\system32

asi que te recomiendo lo tengas en el mismo lugar..... no lo he corrido en win 7... la verdad es que no se que pase.

por cierto esto es lo que llevo

@echo off
 
for /f "tokens=*" %%_ in ('dir /B *.html') do (call:cambia "%%~_")

goto:eof

:cambia

set a=%~n1_
set a=%a:~4,-1%

echo %a%

set lin12=^<p align="center"^>^<span^>"%a"^</span^>^</p^>
set lin13=^<p align="center"^>^<img src="%a.jpg" width="624" height="493"^>^</p^>
set lin14=^<p align="center"^>^<img src="map_a.jpg" width="624" height="493"^>^</p^>

set archi=modcode.htm
set lineaa=12
set lineab=13
set lineac=14

rem aqui debe hacer el cambio


copy "modcode.htm" "cod_%a%.html"



solo me falta modificar el archivo

saludos
En línea

romanjr

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: modificar lineas contenidas en un archivo
« Respuesta #8 en: 18 Febrero 2011, 02:20 am »

jajajajaja ya me han de alucinar  ;D :D

ok ya lo resolvi pero medio cavernicola, ademas al presentar los htmls en el explorer me muestra unas " pero no importa se ve lo que quiero ver....

aun asi insisto si hay una opcion mejor se los agradere

un abrazo y gracias



@echo off
 
for /f "tokens=*" %%_ in ('dir /B *.html') do (call:cambia "%%~_")

goto:eof

:cambia

set a=%~n1_
set a=%a:~4,-1%

echo %a%

set lin12=^<p align="center"^>^<span^>%a%^</span^>^</p^>
set lin13=^<p align="center"^>^<img src="%a%.jpg" width="624" height="493"^>^</p^>
set lin14=^<p align="center"^>^<img src="map_%a%.jpg" width="624" height="493"^>^</p^>

rem aqui debe hacer el cambio

@echo off
(   
echo 12   
echo "%lin12%"
echo w   
echo e
) | edlin /b modcode.htm

@echo off
(   
echo 13   
echo "%lin13%"
echo w   
echo e
) | edlin /b modcode.htm

@echo off
(   
echo 14   
echo "%lin14%"
echo w   
echo e
) | edlin /b modcode.htm

rem aqui termina de hacer el cambio

copy "modcode.htm" "cod_%a%.html"

otra vez gracias y espero sus comentarios
 
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: modificar lineas contenidas en un archivo
« Respuesta #9 en: 18 Febrero 2011, 03:13 am »

Con sed creo que puedo hacerlo fácilmente, pero bueno, hoy no tengo tiempo, ya será mañana.

Saludos.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Agregar lineas de texto a un archivo « 1 2 »
Dudas Generales
Paco_Colombia 11 18,069 Último mensaje 11 Marzo 2013, 13:07 pm
por Cracker_novato
Leer archivo por lineas, y chr(10) ?
Programación Visual Basic
elmaro 7 6,450 Último mensaje 24 Agosto 2007, 17:34 pm
por ~~
Archivo .exe que oculta lineas en ollydbg
Ingeniería Inversa
Isel2 8 5,223 Último mensaje 16 Agosto 2014, 19:45 pm
por Isel2
Eliminar líneas de texto contenidas.
Dudas Generales
MA40 0 2,337 Último mensaje 16 Octubre 2016, 22:59 pm
por MA40
Buscar y modificar lineas de un fichero
Programación C/C++
lordluisiv 0 1,606 Último mensaje 17 Abril 2019, 22:11 pm
por lordluisiv
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines