Bat MSDOS modificación fichero texto

Tengo el siguiente fichero a.txt con el contenido

" <usuario>J52_1</usuario>"
" <usuario>J52_1</usuario>"
" <usuario>J52_1</usuario>"

Y quiero obtener otro fichero c.txt quitando las " dobles de inicio y fin de cada línea, además de enumerar las J52_, el resultado seria

<usuario>J52_1</usuario>
<usuario>J52_2</usuario>
<usuario>J52_3</usuario>

Consigo leer las líneas con un for, pero soy incapaz de poner la secuencia de línea J52_1 J52_2 ... Y tampoco puedo quitar las " de inicio y fin de línea.

Seguro que es muy simple, pero no hay manera.

¿Alguna ayuda?

1 respuesta

Respuesta
1

No sé si el caso que presentas es literal o no, es decir si donde pones, por ejemplo, <usuario> realmente es eso lo que hay. Si fuera así prueba este bat:

@echo off
Setlocal EnableDelayedExpansion
set carpeta=d:\carpeta prueba\AAAAA
set archivo=tonirod.txt
set /a n=1
pushd %carpeta%
del /q tmp.txt>nul 2>&1
for /f "usebackq tokens=*" %%x in (%archivo%) do (
   set linea=%%x
   set linea=!linea:"=!
   set linea=!linea:~0,13!!n!!linea:~14!
   echo !linea!>>tmp.txt
   set /a n=!n!+1
)
Popd

Ajusta los valores de CARPETA y ARCHIVO a tu caso, ejecuta el BAT y comprueba si en la carpeta indicada existe un archivo de nombre TMP.TXT con el contenido esperado

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas