Renombrar archivos xml de una carpeta con la info de algunos nodos específicos de cada xml

Expertos y miembros, saludos y expongo una petición de ayuda estoy tratando de renombrar masivamente todos los archivos XML de una carpeta, el nuevo nombre de cada archivo deberá formarse con datos de los nodos de su respectivo XML son facturas en México, el archivo renombrado debe ser algo como esto:

Fecha /  Rfc emisor o receptor   /    Uuid   /  Total                           (por ejemplo)

2022-06-21T23:59:59/DLR150801D40/16fb06f6-1f03-493d-a17d-9dcf326aa3d1/1400.00

El xml origen o fuente es este:

Se me ocurrió iniciar extrayendo la info requerida en una hoja y extraer la ruta también luego concatenar pero no me dio resultado, tal vez exista otra rutina más concreta y eficiente

También si no se complica cambiar en algún momento o agregar al nombre cualquier otro dato más y así poder administrar mis archivos pues actualmente el nombre del archivo es solo el UUID

Me seria muy útil no solo a mi también a muchos compañeros que el nombre nos diera más información como la que estoy pidiendo comparando seria algo así:

NOMBRE ACTUAL: 16fb06f6-1f03-493d-a17d-9dcf326aa3d.xml

NOMBRE RENOMBRADO: 2022-06-21T23:59:59/DLR150801D40/16fb06f6-1f03-493d-a17d-9dcf326aa3d1/1400.00

1 Respuesta

Respuesta
1

Para empezar creo que no se admite el carácter "/" en los nombres de archivo, de modo que el primer cambio sería el de usar el carácter "_" (por ejemplo) en lugar del "/".

En cuanto a la parte que llamas Fecha entiendo que se obtiene de la línea que contiene la cadena "Fecha=".

La parte que llamas "Rfc emisor o receptor" no acabo de verla en el ejemplo porque en las líneas que contienen la cadena "Rfc=" los valores que siguen son "CRI9204101R0" y "DLO140827DS0" respectivamente. Y si están los dos valores, ¿cuál debería tomarse?

En cuanto a la parte Uuid entiendo que no es necesario sacarla del interior del XML porque ya figura en el nombre original.

La parte que llamas Total entiendo que se extrae de lo que sigue a la cadena " Total=" (incluyo un espacio en la cadena para distinguirlo del "SubTotal=" que también incluiría a la cadena "Total="

Creo que podría hacer algo cuando tenga un rato (no será el caso en un par de días) pero antes necesito que me aclares estos puntos, y si me pones el texto del XML de ejemplo en una ventanita "snipett" me facilitarás el trabajo (por si no tienes mucha experiencia en esta página se abre con el icono "<>" de la barra de herramientas, el tercero desde la derecha.

1.Para empezar creo que no se admite el carácter "/" en los nombres de archivo, de modo que el primer cambio sería el de usar el carácter "_" (por ejemplo) en lugar del "/".  (Use  "/" para tratar de dar a entender que eran los datos que deberían integrar el nombre no importa que caracter se use el guion bajo esta bien.)

2.En cuanto a la parte que llamas Fecha entiendo que se obtiene de la línea que contiene la cadena "Fecha=".  ( Es correcto esa dato es)

3.-La parte que llamas "Rfc emisor o receptor" no acabo de verla en el ejemplo porque en las líneas que contienen la cadena "Rfc=" los valores que siguen son "CRI9204101R0" y "DLO140827DS0" respectivamente. Y si están los dos valores, ¿Cuál debería tomarse?  (En esta parte me equivoque pues copie y pegue de una hoja de Excel tome otros datos por error,  pero la idea es que el dato sea Rfc Receptor en este caso DLO140827DS0 ese es el dato que debe tomarse)           Una duda después podría hacerse otro código o modificarlo  para que en lugar de tomar el rfc receptor tome el rfc emisor este otro codigo lo usaría también pero para renombrar con otros archivos xml diferentes.

4.-Lo del UUID es correcto es el nombre original del archivo de ahí se tomaría.

5.-La parte que llamas Total entiendo que se extrae de lo que sigue a la cadena " Total=" (incluyo un espacio en la cadena para distinguirlo del "SubTotal=" que también incluiría a la cadena "Total=" (Es correcto el dato seria lo que sigue es decir 1,400.00)

6.-y si me pones el texto del XML de ejemplo en una ventanita "snipett" me facilitarás el trabajo (por si no tienes mucha experiencia en esta página se abre con el icono "<>" de la barra de herramientas, el tercero desde la derecha.

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:implocal="http://www.sat.gob.mx/implocal" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd http://www.sat.gob.mx/implocal http://www.sat.gob.mx/sitio_internet/cfd/implocal/implocal.xsd" Version="3.3" Serie="CA" Folio="31375" Fecha="2022-06-21T23:59:59" Sello="IqFm/NCEq3jEVIA5BZR5m59CtB4t/IrOGhcDkp/PQ6jmyWoHXYWmp0RwVcdR+92TGGHKfw5OHi8Qc/XicrmTVnBwPM9pYBNPv3tbFD7no4WOhKODMn3htTPYnp2ygZBUxGEMOBPDyXktm28RiF1AwllViqZMY3PEH1tdNJTZ6a8qnckix+ZbVTwjmI1mXGRH+azNpJEhANb196tKHwfd2aFd43aB5jI2OsHOCl2/5KJbYKVrf42slKY5O6XeZWTqpvM4SoVrYk3wAgY92OR1wuUymGQsq8U6mjMgf7uCGTnqu3IM7LGBRTTnMrZ1kKIQ2lcY2+qbn39DiTirBqfzVA==" FormaPago="01" NoCertificado="00001000000506095624" Certificado="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" CondicionesDePago="Contado" SubTotal="1400.00" Moneda="MXN" Total="1400.00" TipoDeComprobante="I" MetodoPago="PUE" LugarExpedicion="22750">
<cfdi:Emisor Rfc="CRI9204101R0" Nombre="CRISTAPURO S.A. DE C.V." RegimenFiscal="601"/>
<cfdi:Receptor Rfc="DLO140827DS0" Nombre="DELI LOOP SOCIEDAD ANONIMA DE CAPITAL VARIABLE" UsoCFDI="G03"/>
<cfdi:Conceptos>
<cfdi:Concepto ClaveProdServ="50202301" NoIdentificacion="71" Cantidad="700.000000" ClaveUnidad="A76" Unidad="GALON" Descripcion="AGUA" ValorUnitario="2.0000" Importe="1400.0000">
<cfdi:Impuestos>
<cfdi:Traslados>
<cfdi:Traslado Base="1400.0000" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.000000" Importe="0.00"/>
</cfdi:Traslados>
</cfdi:Impuestos>
</cfdi:Concepto>
</cfdi:Conceptos>
<cfdi:Impuestos TotalImpuestosTrasladados="0.00">
<cfdi:Traslados>
<cfdi:Traslado Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.000000" Importe="0.00"/>
</cfdi:Traslados>
</cfdi:Impuestos>
<cfdi:Complemento>
<tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd" Version="1.1" UUID="16fb06f6-1f03-493d-a17d-9dcf326aa3d1" FechaTimbrado="2022-06-22T13:57:45" RfcProvCertif="LSO1306189R5" SelloCFD="IqFm/NCEq3jEVIA5BZR5m59CtB4t/IrOGhcDkp/PQ6jmyWoHXYWmp0RwVcdR+92TGGHKfw5OHi8Qc/XicrmTVnBwPM9pYBNPv3tbFD7no4WOhKODMn3htTPYnp2ygZBUxGEMOBPDyXktm28RiF1AwllViqZMY3PEH1tdNJTZ6a8qnckix+ZbVTwjmI1mXGRH+azNpJEhANb196tKHwfd2aFd43aB5jI2OsHOCl2/5KJbYKVrf42slKY5O6XeZWTqpvM4SoVrYk3wAgY92OR1wuUymGQsq8U6mjMgf7uCGTnqu3IM7LGBRTTnMrZ1kKIQ2lcY2+qbn39DiTirBqfzVA==" NoCertificadoSAT="00001000000509846663" SelloSAT="gepNKdhQybGdtzD/I/6gKsTfyLvqVnAo4ckLk1+NYFoBDl3XkG6paYiOTW22VuSF0QAwW2V0dr1MDBTtsDkt6nr9oPj3//FQYwT4c7tBw+DwHki2Uo/T1xGwsvnzI2S196dz/iAeb2WUBPHkQ9qvWow5XwcxfBMPiB0Xxk2epSESD0f3ZpPgQC1HHWpa8LBE/CNNbIudnczMrJW2svI0NZKj76Ayozteo+g4XnyHFTPs9+Eu0lgjwWSFt1pnf/lpyddK919maG67I5Bs8c8vwZodkKXVIRhyVqXInqQPsphgc6ySxJW1yLjkpI80C690AUtVakvbs+0D2bN2zU5z6g=="/>
</cfdi:Complemento>
</cfdi:Comprobante>

(Claro que si te lo pongo la verdad intente ponerlo al hacer la pregunta pero no supe como pues lo pegue tal como estoy escribiendo y me marco un error que eran muchos renglones con caracteres seguidos al querer enviar la pregunta  ahora ya se por que.) te agrego texto xml en ventana snipett  

Gracias por tu interes saludos y quedo pendiente.

Estoy con ello, pero como te dije solo puedo ocuparme en ratos sueltos. A ver si durante el día de hoy consigo una primera versión del bat.

Una primera prueba para extraer la fecha del xml que me has pasado:

@echo off
Setlocal EnableDelayedExpansion
set cadena="Fecha="
set nomarch=adancab.xml
set valor=
set maxlg=4096
call :longcad %cadena%
set /a lgcampo=19
set control=0
for /f "tokens=* usebackq" %%a in (%nomarch%) do (
   set lin=%%a
   set lin=!lin:^>=!
   set lin=!lin:^<=!
   echo "!lin!" ^^| find %cadena%>nul&&set control=1
   if !control!==1 (
      for /l %%I in (1,1,%maxlg%) do (
         if "!lin:~%%I,%lgcad%!"==%cadena% (
            set /a desp=%%I+%lgcad%+1
            call set valor=%%lin:~!desp!,%lgcampo%%%
            Echo ! Valor!
            )
         )
      )
   )
goto :EOF
:longcad
set cad=%~1&set lgcad=0
:bc
set c=!cad:~%lgcad%!
if "%c%"=="" goto :eof
set /a lgcad+=1
goto :bc

Le he llamado ADANCAB.XML y he tenido que hilar muy fino porque en las llamadas internas a "subrutinas" mediante CALL no se pueden pasar líneas muy grandes y la que contiene la fecha es de 3021 caracteres. Puedes probar tú este BAT pero por si acaso te muestro lo que me sale a mí (le he llamado ADANCAB2.BAT):

C:\Users\g\Documents\BAT>type adancab.xml
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:implocal="http://www.sat.gob.mx/implocal" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd http://www.sat.gob.mx/implocal http://www.sat.gob.mx/sitio_internet/cfd/implocal/implocal.xsd" Version="3.3" Serie="CA" Folio="31375" Fecha="2022-06-21T23:59:59" Sello="IqFm/NCEq3jEVIA5BZR5m59CtB4t/IrOGhcDkp/PQ6jmyWoHXYWmp0RwVcdR+92TGGHKfw5OHi8Qc/XicrmTVnBwPM9pYBNPv3tbFD7no4WOhKODMn3htTPYnp2ygZBUxGEMOBPDyXktm28RiF1AwllViqZMY3PEH1tdNJTZ6a8qnckix+ZbVTwjmI1mXGRH+azNpJEhANb196tKHwfd2aFd43aB5jI2OsHOCl2/5KJbYKVrf42slKY5O6XeZWTqpvM4SoVrYk3wAgY92OR1wuUymGQsq8U6mjMgf7uCGTnqu3IM7LGBRTTnMrZ1kKIQ2lcY2+qbn39DiTirBqfzVA==" FormaPago="01" NoCertificado="00001000000506095624" Certificado="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" CondicionesDePago="Contado" SubTotal="1400.00" Moneda="MXN" Total="1400.00" TipoDeComprobante="I" MetodoPago="PUE" LugarExpedicion="22750">
<cfdi:Emisor Rfc="CRI9204101R0" Nombre="CRISTAPURO S.A. DE C.V." RegimenFiscal="601"/>
<cfdi:Receptor Rfc="DLO140827DS0" Nombre="DELI LOOP SOCIEDAD ANONIMA DE CAPITAL VARIABLE" UsoCFDI="G03"/>
<cfdi:Conceptos>
<cfdi:Concepto ClaveProdServ="50202301" NoIdentificacion="71" Cantidad="700.000000" ClaveUnidad="A76" Unidad="GALON" Descripcion="AGUA" ValorUnitario="2.0000" Importe="1400.0000">
<cfdi:Impuestos>
<cfdi:Traslados>
<cfdi:Traslado Base="1400.0000" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.000000" Importe="0.00"/>
</cfdi:Traslados>
</cfdi:Impuestos>
</cfdi:Concepto>
</cfdi:Conceptos>
<cfdi:Impuestos TotalImpuestosTrasladados="0.00">
<cfdi:Traslados>
<cfdi:Traslado Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.000000" Importe="0.00"/>
</cfdi:Traslados>
</cfdi:Impuestos>
<cfdi:Complemento>
<tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd" Version="1.1" UUID="16fb06f6-1f03-493d-a17d-9dcf326aa3d1" FechaTimbrado="2022-06-22T13:57:45" RfcProvCertif="LSO1306189R5" SelloCFD="IqFm/NCEq3jEVIA5BZR5m59CtB4t/IrOGhcDkp/PQ6jmyWoHXYWmp0RwVcdR+92TGGHKfw5OHi8Qc/XicrmTVnBwPM9pYBNPv3tbFD7no4WOhKODMn3htTPYnp2ygZBUxGEMOBPDyXktm28RiF1AwllViqZMY3PEH1tdNJTZ6a8qnckix+ZbVTwjmI1mXGRH+azNpJEhANb196tKHwfd2aFd43aB5jI2OsHOCl2/5KJbYKVrf42slKY5O6XeZWTqpvM4SoVrYk3wAgY92OR1wuUymGQsq8U6mjMgf7uCGTnqu3IM7LGBRTTnMrZ1kKIQ2lcY2+qbn39DiTirBqfzVA==" NoCertificadoSAT="00001000000509846663" SelloSAT="gepNKdhQybGdtzD/I/6gKsTfyLvqVnAo4ckLk1+NYFoBDl3XkG6paYiOTW22VuSF0QAwW2V0dr1MDBTtsDkt6nr9oPj3//FQYwT4c7tBw+DwHki2Uo/T1xGwsvnzI2S196dz/iAeb2WUBPHkQ9qvWow5XwcxfBMPiB0Xxk2epSESD0f3ZpPgQC1HHWpa8LBE/CNNbIudnczMrJW2svI0NZKj76Ayozteo+g4XnyHFTPs9+Eu0lgjwWSFt1pnf/lpyddK919maG67I5Bs8c8vwZodkKXVIRhyVqXInqQPsphgc6ySxJW1yLjkpI80C690AUtVakvbs+0D2bN2zU5z6g=="/>
</cfdi:Complemento>
</cfdi:Comprobante>
C:\Users\g\Documents\BAT>adancab2
2022-06-21T23:59:59

Este sería el BAT completo:

:: Para renombrar los archivos xml de una carpeta con valores de varios campos internos
:: Parece que los caracteres ">" y "<" de las líneas de los archivos XML dan problemas
@echo off
Setlocal EnableDelayedExpansion
set cadena1="Fecha="
set cadena2="Receptor Rfc="
set cadena3=" Total="
set campo1=
set campo2=
set campo3=
set lgcampo1=19
set lgcampo2=12
set lgcampo3=7
call :longcad %cadena1%
set lgcad1=%lgcad%
call :longcad %cadena2%
set lgcad2=%lgcad%
call :longcad %cadena3%
set lgcad3=%lgcad%
set maxlg=4096
for /f %%z in ('dir /b *.xml') do (
   for /f "tokens=*" %%a in ('find /i %cadena1% ^< "%%z"') do (
      set lin=%%a
      set lin=!lin:^>=!
      set lin=!lin:^<=!
      echo "!lin!" ^^| find %cadena1%>nul&&set control=1
      if !control!==1 (
         for /l %%I in (1,1,%maxlg%) do (
            if "!lin:~%%I,%lgcad1%!"==%cadena1% (
               set /a desp=%%I+%lgcad1%+1
               call set campo1=%%lin:~!desp!,%lgcampo1%%%
               Echo ! Campo1!
               )
            )
         )
      )
   for /f "tokens=*" %%a in ('find /i %cadena2% ^< "%%z"') do (
      set lin=%%a
      set lin=!lin:^>=!
      set lin=!lin:^<=!
      echo "!lin!" ^^| find %cadena2%>nul&&set control=1
      if !control!==1 (
         for /l %%I in (1,1,%maxlg%) do (
            if "!lin:~%%I,%lgcad2%!"==%cadena2% (
               set /a desp=%%I+%lgcad2%+1
               call set campo2=%%lin:~!desp!,%lgcampo2%%%
               Echo ! Campo2!
               )
            )
         )
      )
   for /f "tokens=*" %%a in ('find /i %cadena3% ^< "%%z"') do (
      set lin=%%a
      set lin=!lin:^>=!
      set lin=!lin:^<=!
      echo "!lin!" ^^| find %cadena3%>nul&&set control=1
      if !control!==1 (
         for /l %%I in (1,1,%maxlg%) do (
            if "!lin:~%%I,%lgcad3%!"==%cadena3% (
               set /a desp=%%I+%lgcad3%+1
               call set campo3=%%lin:~!desp!,%lgcampo3%%%
               Echo ! Campo3!
               )
            )
         )
      )
   echo ren "%%z" "!campo1!_!campo2!_!campo3!_%%z"
   )
goto :EOF
:longcad
set cad=%~1&set lgcad=0
:bc
set c=!cad:~%lgcad%!
if "%c%"=="" goto :eof
set /a lgcad+=1
goto :bc

Estoy seguro de que se puede optimizar porque hay mucho código repetido, pero por si se puede adelantar algo lo pongo ya. Como el editor de la página a veces cambia cosas lo revisaré después de enviarlo

He visto que se me ha olvidado retirar algunos comandos de "depuración" en los que, además, el editor de la página ha cometido alguno de los errores típicos. Habría que eliminar las tres líneas

 Echo ! Campo1!
               Echo ! Campo2!
               Echo ! Campo3!

Además a efectos de control previo antes de dar por bueno el BAT he sustituido el comando de renombrado por un ECHO que permite visualizar el comando de renombrado sin ejecutarlo.

Hablo de:

   echo ren "%%z" "!campo1!_!campo2!_!campo3!_%%z"

Hola mi estimado ggrirald ya hice los cambios y prueba en la consola cmd, no veo el renombrado según yo elimine las líneas echo!campo y no encontré la falla igual elimine el echo del ren y obtuve en la primera parte esto de momento, según si mal no entendí aun se puede afinar agradezco tu tiempo invertido en el bat, saludos.

C:\Users\ADAN\Desktop\caliz bat>dir
 El volumen de la unidad C es Windows
 El número de serie del volumen es: 38BD-31DC
 Directorio de C:\Users\ADAN\Desktop\caliz bat
03/07/2022  10:14 p. m.    <DIR>          .
03/07/2022  10:14 p. m.    <DIR>          ..
29/06/2022  11:20 a. m.             6,154 00A34BE6-37CA-4DD6-A2D3-753E7ED1D66F.xml
29/06/2022  11:18 a. m.             5,344 00A8CBF9-4375-45CB-8FCA-6CB2FFBAA26A.xml
24/06/2022  12:07 p. m.             5,717 00C32CE0-A629-4037-B8E2-230491576B0A.xml
24/06/2022  12:10 p. m.             5,774 00CCA949-D891-476B-8B90-98FE60FAAF1F.xml
03/07/2022  12:27 p. m.             4,955 0A06DA38-9E5E-4C9D-96D9-57654B44BE74.xml
24/06/2022  12:07 p. m.             5,346 0A2E7B70-27AD-4014-8A17-B96932822DA6.xml
23/06/2022  01:30 p. m.             5,347 0A4C6641-4D4D-4DE8-9D72-361C37CF9092.xml
24/06/2022  12:09 p. m.             4,975 0A5A4FEC-B821-4613-B2A5-D9F7B81777FF.xml
03/07/2022  12:26 p. m.             5,344 0A5D688E-5D53-4BFA-B37B-6418D640AFF0.xml
29/06/2022  11:19 a. m.             4,979 0A6C95CE-0880-4580-9B2E-B6A0DFC2B424.xml
03/07/2022  09:48 p. m.               734 caliz gg1 - copia.bat
03/07/2022  09:48 p. m.               734 caliz gg1.txt
03/07/2022  09:54 p. m.             2,154 Caliz ggcompleto.txt
03/07/2022  10:22 p. m.             2,149 Calizcompleto.bat
              14 archivos         59,706 bytes
               2 dirs  1,317,647,974,400 bytes libres
C:\Users\ADAN\Desktop\caliz bat>calizcompleto.bat
Ya existe un archivo con el mismo nombre
o no se ha encontrado el archivo.
Ya existe un archivo con el mismo nombre
o no se ha encontrado el archivo.
Ya existe un archivo con el mismo nombre
o no se ha encontrado el archivo.
Ya existe un archivo con el mismo nombre
o no se ha encontrado el archivo.
Ya existe un archivo con el mismo nombre
o no se ha encontrado el archivo.
Ya existe un archivo con el mismo nombre
o no se ha encontrado el archivo.
Ya existe un archivo con el mismo nombre
o no se ha encontrado el archivo.
Ya existe un archivo con el mismo nombre
o no se ha encontrado el archivo.
Ya existe un archivo con el mismo nombre
o no se ha encontrado el archivo.
Ya existe un archivo con el mismo nombre
o no se ha encontrado el archivo.
C:\Users\ADAN\Desktop\caliz bat>
agregue el echo de nuevo para visualizar y obtuve: 
C:\Users\ADAN\Desktop\caliz bat>calizcompleto.bat
ren "00A34BE6-37CA-4DD6-A2D3-753E7ED1D66F.xml" "2022-06-27T15:13:10__3884.76_00A34BE6-37CA-4DD6-A2D3-753E7ED1D66F.xml"
ren "00A8CBF9-4375-45CB-8FCA-6CB2FFBAA26A.xml" "2022-06-22T10:57:10__800.00"_00A8CBF9-4375-45CB-8FCA-6CB2FFBAA26A.xml"
ren "00C32CE0-A629-4037-B8E2-230491576B0A.xml" "2022-06-11T11:48:15__2789.60_00C32CE0-A629-4037-B8E2-230491576B0A.xml"
ren "00CCA949-D891-476B-8B90-98FE60FAAF1F.xml" "2022-06-20T08:39:36__1900.00_00CCA949-D891-476B-8B90-98FE60FAAF1F.xml"
ren "0A06DA38-9E5E-4C9D-96D9-57654B44BE74.xml" "2022-06-30T12:06:57__1800.00_0A06DA38-9E5E-4C9D-96D9-57654B44BE74.xml"
ren "0A2E7B70-27AD-4014-8A17-B96932822DA6.xml" "2022-06-13T09:51:25__434.67"_0A2E7B70-27AD-4014-8A17-B96932822DA6.xml"
ren "0A4C6641-4D4D-4DE8-9D72-361C37CF9092.xml" "2022-06-08T11:29:21__1500.11_0A4C6641-4D4D-4DE8-9D72-361C37CF9092.xml"
ren "0A5A4FEC-B821-4613-B2A5-D9F7B81777FF.xml" "2022-06-15T20:25:58__849.02"_0A5A4FEC-B821-4613-B2A5-D9F7B81777FF.xml"
ren "0A5D688E-5D53-4BFA-B37B-6418D640AFF0.xml" "2022-06-29T09:02:08__1986.53_0A5D688E-5D53-4BFA-B37B-6418D640AFF0.xml"
ren "0A6C95CE-0880-4580-9B2E-B6A0DFC2B424.xml" "2022-06-24T21:16:51__300.00"_0A6C95CE-0880-4580-9B2E-B6A0DFC2B424.xml"
C:\Users\ADAN\Desktop\caliz bat>

Parece que el problema no es lo que indican los mensajes, no es que exista un archivo con el mismo nombre o que no se encuentre el archivo especificado, lo que ocurre es que no se admiten los caracteres ":" en el nombre del archivo renombrado. Ante esto podemos optar por dos soluciones:

  • Recortar el campo "Fecha" para que llegue solo hasta la hora, sin capturar los minutos ni los segundos. Para eso bastaría con cambiar LGCAMPO1 a 13 en lugar de 19
  • Cambiar en ese campo los ":" por otro carácter, por ejemplo "#". Para ello habría que incluir el comando set campo1=!campo1::=#!

Me sorprende que no parece que se haya localizado el CAMPO2 en ninguno de los 10 XML de las pruebas

Hola gggirald opte por la primera opción pues la hora no es tan importante para el manejo de la info en este caso, ya me renombro los archivos correctamente y no sabes lo infinitamente agradecido que estoy contigo por tu apoyo, este bat me ayudará enormemente para administrar los archivos y la info que obtengo después de este proceso de renombrado, siendo así doy por terminado el tema con resultado más que satisfactorio gracias desde Ensenada BC México, saludos.

Perdón no había visto lo del CAMPO2 de todas formas el dato más importante para mi es la fecha, pero tratare de investigar por que no lo agrega al momento de renombrar, saludos.

Si quieres pásame en un snippet alguno de esos ejemplos para que pueda echarte una mano en el asunto del CAMPO2. Cualquiera de ellos debería valer. También puedes probar con el que me pasaste, a ver si en ese caso sí que se obtiene el CAMPO2 (debería ser así porque es con el archivo que he probado yo, pero estas cosas "las carga el diablo")

Hola gggirald estuve revisando la estructura de los archivos xml supongo que el problema del campo 2 es que el dato  Receptor Rfc no esta en la misma posición que el archivo original de la pregunta mira:

1.- Esto es parte del  xml que te envie cuando hice la pregunta y con el cual tu bat renombra el archivo con los 3 campos completo y muy bien, lo pongo en negrita:

<cfdi:Emisor Rfc="CRI9204101R0" Nombre="CRISTAPURO S.A. DE C.V." RegimenFiscal="601"/>
<cfdi:Receptor Rfc="DLO140827DS0" Nombre="DELI LOOP SOCIEDAD ANONIMA DE CAPITAL VARIABLE" UsoCFDI="G03"/>

2.Esta es la parte de otro archivo xml donde puedes observar que ahora Nombre esta antes de Rfc:

<cfdi:Emisor Nombre="SUPER SERVICIO MODELO S.A." RegimenFiscal="601" Rfc="SSM780824Q19"/>
<cfdi:Receptor Nombre="JOSE RODOLFO MUÑOZ GARCIA" Rfc="MUGR83081797A" UsoCFDI="G03"/>

Ahora te comento rfc del segundo archivo xml tiene un caracter mas lo cual esta bien y cambie la longitud del campo 2 en tu bat de 12 al valor 13.

No se como hacer para que en tu bat la cadena campo2 que originalmente era Receptor Rfc busque el valor de la parte que diga rfc y /u omita lo que este de mas. Este dato rfc puede estar en diferente orden (cualquier posición) es decir puede ser Receptor Rfc como en el archivo en que te basaste para hacer el bat o puede esta al final de la línea no se si me explique correctamente.

Te mando en un snippet otro de los archivos xml de los cuales el campo2 no se renombra con el bat ya tu veras si lo que te comente anteriormente sobre la posición de Rfc  de la cadena es parte del problema gracias de antemano y saludos.

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:aieps="http://www.sat.gob.mx/acreditamiento" xmlns:eco="http://cfd.grupoeco.com.mx" xmlns:implocal="http://www.sat.gob.mx/implocal" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Certificado="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" Fecha="2022-06-22T10:57:10" Folio="85409" Rfc="DLO140827DS0" FormaPago="03" LugarExpedicion="22880" MetodoPago="PUE" Moneda="MXN" NoCertificado="00001000000411430662" Sello="ZjPeDv1oUxltpGDsBPHcqKSo7ChnrJ+SNNcnPwTqdycjDQtwRFWbNTLRjzGckC30H3riQBAdQ9EOdFXjdi1FIFJqS8mDlm7D+YHVlQzRAp0M7xz2gBoMO6Glu3d8KlXZACj+qtoJHpbVom8Vb1OthxM6mPRki1N1THCGHc2asydB+eciajP2w7QiJeXYeha/8Vtmk6oMpzuSCLX+dgUWok1H6jTe3X9WW9IRXG+cvbfVN/M1eZEx/ye+U11I6KdXFa3e3T0IMZDWaERiBxXHF+aZpRqhxXwV+9Pnm9QqMa8/c4SxsO4SYSHpGwoZFGMsIb+fJ9O4MD1lSC0nierHQg==" Serie="BI" SubTotal="742.11" TipoDeComprobante="I" Total="800.00" Version="3.3" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd http://www.sat.gob.mx/acreditamiento http://www.sat.gob.mx/sitio_internet/cfd/acreditamiento/AcreditamientoIEPS10.xsd http://www.sat.gob.mx/implocal http://www.sat.gob.mx/sitio_internet/cfd/implocal/implocal.xsd http://cfd.grupoeco.com.mx http://cfd.grupoeco.com.mx/eco_cfd.xsd">
<cfdi:Emisor Nombre="SUPER SERVICIO MODELO S.A." RegimenFiscal="601" Rfc="SSM780824Q19"/>
<cfdi:Receptor Nombre="JOSE RODOLFO MUÑOZ GARCIA" Rfc="MUGR83081797A" UsoCFDI="G03"/>
<cfdi:Conceptos>
<cfdi:Concepto Cantidad="38.113" ClaveProdServ="15101514" ClaveUnidad="LTR" Descripcion="GASOLINA REGULAR MIN. 87 OCTANOS" Importe="742.11" NoIdentificacion="PL/3608/EXP/ES/2015-1057176" ValorUnitario="19.47109">
<cfdi:Impuestos>
<cfdi:Traslados>
<cfdi:Traslado Base="723.630000" Importe="57.89" Impuesto="002" TasaOCuota="0.080000" TipoFactor="Tasa"/>
</cfdi:Traslados>
</cfdi:Impuestos>
</cfdi:Concepto>
</cfdi:Conceptos>
<cfdi:Impuestos TotalImpuestosTrasladados="57.89">
<cfdi:Traslados>
<cfdi:Traslado Importe="57.89" Impuesto="002" TasaOCuota="0.080000" TipoFactor="Tasa"/>
</cfdi:Traslados>
</cfdi:Impuestos>
<cfdi:Complemento>
<tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" FechaTimbrado="2022-06-22T12:57:09" NoCertificadoSAT="00001000000504204971" RfcProvCertif="PPD101129EA3" SelloCFD="ZjPeDv1oUxltpGDsBPHcqKSo7ChnrJ+SNNcnPwTqdycjDQtwRFWbNTLRjzGckC30H3riQBAdQ9EOdFXjdi1FIFJqS8mDlm7D+YHVlQzRAp0M7xz2gBoMO6Glu3d8KlXZACj+qtoJHpbVom8Vb1OthxM6mPRki1N1THCGHc2asydB+eciajP2w7QiJeXYeha/8Vtmk6oMpzuSCLX+dgUWok1H6jTe3X9WW9IRXG+cvbfVN/M1eZEx/ye+U11I6KdXFa3e3T0IMZDWaERiBxXHF+aZpRqhxXwV+9Pnm9QqMa8/c4SxsO4SYSHpGwoZFGMsIb+fJ9O4MD1lSC0nierHQg==" SelloSAT="yBSpPHfd2V2UP9/J1XtidoTmOYrMyBYEyKqoCkpN4nxzqIeh28Y2tceZeAr0cJMGRAeKcKMJjsN+kD57ayyYMhuWTij1MZI/6MTOzKCgzab4MLwgE8SFa9THle5mgXYu1AGxRasOpK3Duz84q1B0c1uusF0xRSyQ5pLhU4+0veUJqrn6h1xarBATDmB4cvRHYqD2c7vXSdoipJC1Fu2dBFRPv0JZx6bz/DPT/QGB93q0O+VE74IvVsDq+ygDtJi/U1A31/O9YumAS0Y4IHQQfA+jjXerk/xa5jMEbqWppbDbV6M4b7IwJttd9kNyHPBFDfKfQCVcTgXL3dMwXUwyHg==" UUID="00A8CBF9-4375-45CB-8FCA-6CB2FFBAA26A" Version="1.1" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd"/>
</cfdi:Complemento>
</cfdi:Comprobante>

Lo que cuentas explica el que no lo detecte. No se trata, exactamente, de que el dato Rfc esté en otra posición, aunque indirectamente también sea eso. Los campos, tal como diseñé el BAT, se identifican por las cadenas literales que los preceden: "Fecha=", "Total=" y "Receptor Rfc=". Pero en estos ejemplos, al haber cambiado el orden entre el Nombre y el Rfc ya no se puede considerar que el Rfc buscado vaya a continuación de la cadena "Receptor Rfc=". Si buscamos, simplemente, "Rfc=" creo que se quedará con la primera aparición, que sería la del emisor, si se mantiene la estructura que me has pasado. Si así no vale habría que revisar el diseño del BAT. Te paso una nueva versión, creo que mejorada, del BAT que incluye este cambio. Además tiene la ventaja de que determina automáticamente la longitud de los campos a extraer pero, en consecuencia, no se puede establecer, por lo que la fecha llevará minutos y segundos. Como ya sabemos que los ":" no se admiten el BAT los cambia a "#". De entrada mantiene el ECHO para mostrar el comando REN. Ya sabes que si quieres que se haga el renombrado hay que eliminar el ECHO.

:: Para renombrar los archivos xml de una carpeta con valores de varios campos internos
:: Parece que los caracteres ">" y "<" de las líneas de los archivos XML dan problemas
@echo off
Setlocal EnableDelayedExpansion
set cadena1="Fecha="
set cadena2="Rfc="
set cadena3=" Total="
set maxlg=4096
for /f %%z in ('dir /b *.xml') do (
   call :tratar %cadena1% "%%z" campo1
   call :tratar %cadena2% "%%z" campo2
   call :tratar %cadena3% "%%z" campo3
   ECHO ren "%%z" "!campo1!_!campo2!_!campo3!_%%z"
   )
goto :eof
:tratar
call :longcad %1
for /f "tokens=*" %%a in ('find /i %1 ^< %2') do (
   set lin=%%a
   set lin=!lin:^>=!
   set lin=!lin:^<=!
   echo "!lin!" ^^| find %1>nul&&set control=1
   if !control!==1 (
      for /l %%I in (1,1,%maxlg%) do (
         if "!lin:~%%I,%lgcad%!"==%1 (
            set /a ini=%%I+%lgcad%+1
            for /l %%J in (!ini!,1,%maxlg%) do (
               if "!lin:~%%J,1!"==" " (
                  set /a lgcampo=%%J-!ini!-1
                  call set campo=%%lin:~!ini!,!lgcampo!%%
                  set campo=!campo::=#!
                  set %3=!campo!&goto :EOF
                  )
               )
            )
         )
      )
   )
:Longcad
set cad=%~1&set lgcad=0
:bc
set c=!cad:~%lgcad%!
if "%c%"=="" goto :eof
set /a lgcad+=1
goto :bc

Hola gggirald excelente ahora si el bat mejorado cumple al 100% con su objetivo, no me resta más que agradecerte y me gustaría contactarte vía email o algún otro medio para tratar un tema de programación si no tienes inconveniente, mi correo es [email protected]

Me alegro mucho de haber conseguido ayudarte. Ya te he enviado un mensaje por email.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas