Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: movaj en 24 Enero 2017, 11:24 am



Título: Batch - Obtener datos de listado de ficheros
Publicado por: movaj en 24 Enero 2017, 11:24 am
Buenos días,

Necesito hacer un script en batch para que obtenga diferente información de ficheros XML y los liste en un CSV o similar (para usarlo en Excel).

El código que os dejo más abajo obtiene primero el listado completo de archivos (esto funciona bien). El problema a partir de ahí es que no soy capaz de obtener, por cada uno de los ficheros, la información que necestito.

Código:
echo off
REM Lectura de archivos
setlocal disableDelayedExpansion
for /f "tokens=1* delims=:" %%A in ('dir /b /A:-D /O:N^|findstr /n "^"') do (
  set "file.%%A=%%B"
  set "file.count=%%A"
)
pause

REM listado de archivos
setlocal enableDelayedExpansion
for /l %%N in (1 1 %file.count%) do set count=%%N
for /l %%N in (1 1 %file.count%) do echo !file.%%N!;>>list.csv
for /l %%N in (1 1 %file.count%) do call :start
pause

REM Extracción de datos por cada archivo
set filenum=0

:start
set archivo=!file.%%N!
setlocal enableextensions disabledelayedexpansion
set "OrgnlMsgId="
   for /f "tokens=2 delims=<>" %%a in (
       'find /i "<OrgnlMsgId>" ^< %archivo%'
    ) do set "OrgnlMsgId=%%a"
echo %OrgnlMsgId%>>list.csv
setlocal enableDelayedExpansion
exit /b

:next
pause
exit

La parte que falla es la de "Extracción de datos por cada archivo".
¿Quien puede ayudarme?


Título: Re: Batch - Obtener datos de listado de ficheros
Publicado por: Eleкtro en 24 Enero 2017, 13:39 pm
hacer un script en batch para que obtenga diferente información de ficheros XML

El problema ... es que no soy capaz de obtener ... la información que necestito.

La parte que falla es la de "Extracción de datos por cada archivo".

Citar
¿Quien puede ayudarme?

¿Y si empiezas por especificar a que tipo de información te estás refiriendo y muestras uno de esos archivos Xml para que podamos conocer su estructura?, no somos adivinos.

De todas formas, si pretendes parsear la estructura/nodos de un archivo Xml con Batch para obtener el valor de alguna propiedad o atributo o etc, entonces te conviene utilizar cualquier otro lenguaje o en su defecto seguir utilizando Batch pero haciendo uso de la herramienta command-line de terceros XmlStarlet para simplificar y perfeccionar el procedimiento: https://sourceforge.net/projects/xmlstar/files/

Saludos!