Batch para modificar múltiples archivos xml basándose en su contenido especifico.
Estoy intentando generar un bat para renombrar más de 500 archivos utilizando una etiqueta de su contenido(noIdentificacion), la cual no siempre aparece en la misma posición.
El nombre de uno de los archivo es :A-000771139. Mxl y necesito se renombre como el valor del nodo que esta en su interior noIdentificacion="9991239999ZH". El nombre final seria 9991239999ZH.xml y así por cada uno de los archivos.
El siguiente código hace lo que requiero pero solo cuando la intentar (noIdentificacion) siempre este en el mismo lugar.
@echo off
for /f "delims=" %%Z in ('dir /b *.xml') do (
for /f "tokens=12 delims== " %%A in (
'find /i "noIdentificacion=" ^< "%%Z"'
) do ren "%%Z" "%%A.xml"
)
anexo el contenido del archivo para las pruebas que sean necesarias.
<?xml version="1.0" encoding="UTF-8"?>fecha="2017-07-06T23:46:42" folio="000771139" formaDePago="Una sola exhibición" metodoDePago="03" noCertificado="00001000000402850319" 4hWxEorqvPZpTTS8YPxgOXIg==" serie="A" subTotal="274646.12" tipoDeComprobante="ingreso" total="318589.50" version="3.2" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd http://www.sat.gob.mx/ventavehiculos http://www.sat.gob.mx/sitio_internet/cfd/ventavehiculos/ventavehiculos11.xsd">
noExterior="400B" noInterior="P3" pais="MEXICO" />
<cfdi:ExpedidoEn pais="Mexico" referencia="AA000771139" />
<cfdi:RegimenFiscal Regimen="Régimen General de las Personas Morales" />
</cfdi:Emisor>
<cfdi:Conceptos>
<cfdi:Concepto cantidad="1.00" descripcion="SASASA" importe="270505.28" noIdentificacion="9991239999ZH" unidad="EA" valorUnitario="270505.28">
<cfdi:ComplementoConcepto>
<ventavehiculos:VentaVehiculos ClaveVehicular="0520809" Niv="2T3ZFREV7HW384929 " version="1.1">
<ventavehiculos:InformacionAduanera aduana="Eagle Pass" fecha="2017-06-19" numero="172736007007111" />
</ventavehiculos:VentaVehiculos>
</cfdi:ComplementoConcepto>
</cfdi:Concepto>
</cfdi:Conceptos>
<cfdi:Impuestos totalImpuestosTrasladados="43943.38">
<cfdi:Traslados>
<cfdi:Traslado importe="43943.38" impuesto="IVA" tasa="16" />