Autor
|
Tema: Leer xml desde archivo batch (Leído 10,105 veces)
|
Dead0922
Desconectado
Mensajes: 8
|
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
Mensajes: 181
:P
|
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 Saludos.
|
|
|
En línea
|
|
|
|
Dead0922
Desconectado
Mensajes: 8
|
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
Mensajes: 181
:P
|
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 <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 ::Coded by SmartGenius :Init for /f "tokens=3 delims= ^>^<" %%a in ('find "nombre" datos.xml' ) do ( set Nombre !N!=%% style="color: #448888;">a ) for /f "tokens=3 delims= ^>^<" %%b in ('find "tipo" datos.xml' ) do ( set Tipo !T!=%% style="color: #448888;">b ) 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
Mensajes: 8
|
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 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
Mensajes: 3.069
/^$/
|
Necesitas poner el codigo entero.
|
|
|
En línea
|
|
|
|
Dead0922
Desconectado
Mensajes: 8
|
@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
Mensajes: 8
|
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
Mensajes: 8
|
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
|
|
|
|
|
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
|
1 Diciembre 2011, 12:21 pm
por Novlucker
|
|
|
problema al leer gauss desde un archivo
Programación C/C++
|
Idmus
|
1
|
2,010
|
14 Noviembre 2013, 19:36 pm
por Idmus
|
|
|
leer desde archivo en c
« 1 2 »
Programación C/C++
|
mataliebres
|
10
|
6,324
|
7 Marzo 2015, 18:12 pm
por mataliebres
|
|
|
Leer archivo json desde vb.net ...? ayuda !!!
.NET (C#, VB.NET, ASP)
|
lordhackerbynary
|
2
|
9,060
|
26 Agosto 2016, 09:30 am
por Eleкtro
|
|
|
Nesesito reproducir un archivo .mp3 desde un archivo BATCH (.bat)
Seguridad
|
facukaku021
|
3
|
5,863
|
17 Octubre 2022, 16:49 pm
por Mr.Byte
|
|