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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Leer xml desde archivo batch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Leer xml desde archivo batch  (Leído 10,105 veces)
Dead0922

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Leer xml desde archivo batch
« en: 21 Abril 2009, 13:32 pm »

Hola a todos,
Tengo un proceso en batch donde le pasaba 2 parámetros uno por uno, pero ahora necesito leerlos desde un archivo xml, en este xml tengo agrupados los parámetros como propiedades, y quiero q para todo lo q tenga en el xml se ejecute con lanzar una sola vez el proceso batch.
Si alguien me puede ayudar, le agradecería muchiiiiiiiisimo   :-*


En línea

SmartGenius

Desconectado Desconectado

Mensajes: 181


:P


Ver Perfil WWW
Re: Leer xml desde archivo batch
« Respuesta #1 en: 21 Abril 2009, 13:51 pm »

Podrias poner que formato tiene el XML par asi poder ayudarte, tambin que es es lo que quieres hcer con esos datos.....asi sin nada no podemos hacer mucho :P

Saludos.


En línea


Dead0922

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: Leer xml desde archivo batch
« Respuesta #2 en: 22 Abril 2009, 09:56 am »

Por ejemplo, los datos que manejo son:
<argumento>
            <nombre>xxxxxxxxxxxx1</nombre>
            <tipo>yyyyyyyyyy.zip</tipo>
</argumento>

ahora, esta estructura se puede repetir, las veces que el usuario lo requiera (modificando el xml), aparte.. internamente en el batch se hace una búsqueda según el "tipo" dentro de la carpeta que se especificó en "nombre"(eso ya lo tengo, pero para un solo grupo de argumentos... no para muchos en caso que estos pasen como xml)

Entonces mi duda es: como hago que el batch lea este archivo xml, que tiene agrupados los argumentos????? para que despues los pueda procesar uno por uno????

Gracias  :-\
En línea

SmartGenius

Desconectado Desconectado

Mensajes: 181


:P


Ver Perfil WWW
Re: Leer xml desde archivo batch
« Respuesta #3 en: 23 Abril 2009, 21:12 pm »

Suponiendo que toda la estructura de datos en el XML es tal cual como la posteas...

<argumento>
            <nombre>xxxxxxxxxxxx1</nombre>
            <tipo>yyyyyyyyyy.zip</tipo>
</argumento>

Habria que usar FOR y FIND para buscar y separar las cadenas y definirlas en variables para despues poder trabajar con ellas...

Ej:
DATOS.XML
Código:
<argumento>
            <nombre>SmartGenius</nombre>
            <tipo>Usuario</tipo>
</argumento>
<argumento>
            <nombre>Novlucker</nombre>
            <tipo>Moderador</tipo>
</argumento>
<argumento>
            <nombre>Leo Gutierrez</nombre>
            <tipo>Moderador</tipo>
</argumento>
<argumento>
            <nombre>0x0309</nombre>
            <tipo>Usuario</tipo>
</argumento>

Podria realizar algo como esto...

LeeDatos.Bat
Código
  1. @echo off
  2. ::Coded by SmartGenius
  3.  
  4. setlocal enabledelayedexpansion
  5. :Init
  6. for /f "tokens=3 delims=^>^<" %%a in ('find "nombre" datos.xml') do (
  7. set /a N+=1
  8. set Nombre!N!=%% style="color: #448888;">a
  9. )
  10. for /f "tokens=3 delims=^>^<" %%b in ('find "tipo" datos.xml') do (
  11. set /a T+=1
  12. set Tipo!T!=%% style="color: #448888;">b
  13. )
  14. echo. Datos del XML
  15. for /l %%c in (1,1,!N!) do (echo. Dato%%c: !Nombre%% style="color: #448888;">c! - !Tipo%% style="color: #448888;">c!)

Saludos.
En línea


Dead0922

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: Leer xml desde archivo batch
« Respuesta #4 en: 30 Abril 2009, 12:23 pm »

Hola, gracias por lo de xml, me sirvió muchísimo.
Ahora mi duda es, que a medida q vaya leyendo del xml, tengo q almacenar los datos en variables temporales y despues hacer algunas instrucciones if y pasar al siguiente valor de la variable, lo estoy haciendo usando etiquetas.. pero en algún momento el valor de la variable se pierde o quizas estoy capturandolo mal ya que no se como funciona eso del %%. En fin... tengo esto

Código:
for /l %%c in (1,1,!N!) do (

echo. !ValorPrimeraVariable%%c! - !ValorSegundaVariable%%c!
cd /d "%homedrive%\Ruta\!ValorPrimeraVariable%%c!"
for /d /r %%_ in (*) do (
if exist "%%_\!ValorSegundaVariable%%c!" (
call :copia "%%_\!ValorSegundaVariable%%c!"
    )
)
goto:eof
   )
:copia
echo. Entrando al COPIA
**************Esta es mi duda.. como hago para leer el valor q tengo al inicio.. pero desde aqui.


Espero me puedan ayudar!
Muchas Gracias
« Última modificación: 30 Abril 2009, 21:20 pm por Leo Gutierrez. » En línea

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

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Leer xml desde archivo batch
« Respuesta #5 en: 30 Abril 2009, 21:24 pm »

Necesitas poner el codigo entero.
En línea

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

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: Leer xml desde archivo batch
« Respuesta #6 en: 6 Mayo 2009, 10:58 am »

@echo off
setlocal enabledelayedexpansion
:Init
for /f "tokens=3 delims=^>^<" %%a in ('find "nombre" datos.xml') do (
   set /a N+=1
   set Nombre!N!=%%a
)
for /f "tokens=3 delims=^>^<" %%b in ('find "tipo" datos.xml') do (
   set /a T+=1
   set Tipo!T!=%%b
)
if not exist "%homedrive%\File" md "%homedrive%\File"

echo. Obteniendo datos de XML
for /l %%c in (1,1,!N!) do (
   echo. Dato%%c: !Nombre%%c! - !Tipo%%c!
        cd /d "%homedrive%\Ruta\!Nombre%%c!"
   for /d /r %%_ in (*) do (
      if exist ""%%_\%Tipo%"" (
                                        call :copia "%%_\%Tipo%")
                                      )
                                 )
:copia
cd /d "%homedrive%\File"
echo !Nombre%%c!_!Tipo%%c!
copy /y %1 "%homedrive%\File\%Nombre%_%Tipo%"

echo Proceso Completo
pause
exit

------------------------------------------------------------------------------------------
No se si estoy llamando mal a las variables o cual es mi error?.. lo cierto es que
en la etiqueta "copia".. ya no se muestran los valores.. y yo lo q tengo q hacer es según cada par de valores que obtenga del xml, hacer una búsqueda y el resultado de la búsqueda (si existe) copiarlo en otra carpeta!

En línea

Dead0922

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: Leer xml desde archivo batch
« Respuesta #7 en: 8 Mayo 2009, 09:29 am »

ya resolví el problema...
dentro del for hago todo sin llamar a la etiqueta, bueno hasta ahora funciona bien.. si tienen otra solucion... me avisan

gracias
En línea

Dead0922

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: Leer xml desde archivo batch
« Respuesta #8 en: 8 Mayo 2009, 13:20 pm »

Hola denuevo,
quisiera saber como hago para leer parámetros que están dentro de un archivo .ini e ir usándolos en el script de batch.
Gracias!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Leer archivo LOG desde Query SQL Server 2008
Bases de Datos
Shell Root 5 14,876 Último mensaje 1 Diciembre 2011, 12:21 pm
por Novlucker
problema al leer gauss desde un archivo
Programación C/C++
Idmus 1 2,010 Último mensaje 14 Noviembre 2013, 19:36 pm
por Idmus
leer desde archivo en c « 1 2 »
Programación C/C++
mataliebres 10 6,324 Último mensaje 7 Marzo 2015, 18:12 pm
por mataliebres
Leer archivo json desde vb.net ...? ayuda !!!
.NET (C#, VB.NET, ASP)
lordhackerbynary 2 9,060 Último mensaje 26 Agosto 2016, 09:30 am
por Eleкtro
Nesesito reproducir un archivo .mp3 desde un archivo BATCH (.bat)
Seguridad
facukaku021 3 5,863 Último mensaje 17 Octubre 2022, 16:49 pm
por Mr.Byte
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines