Txt separados por coma, palabras a variable [Batch]

Iniciado por guason9, 25 Abril 2017, 18:11 PM

0 Miembros y 1 Visitante están viendo este tema.

guason9

Buenassssss, como va????

Tengo el siguiente dimela que me está complicando la existencia :(
Tengo un archivo de texto con cientos de líneas. Cada línea con dos nombres, dos apellidos y una cuenta, algo así:

nombre1,nombre2,apellido1,apellido2,cuenta12
nombre3,nombre4,apellido3,apellido4,cuenta23
..............

Lo que desearía poder hacer, es tomar cada palabra de cada línea y guardarlos en variables para poder usarlos y generar otro txt con una sentencia.
Por ejemplo que salga:

Mis nombres son %nombre1% %nombre2% mis apellidos  %apellido1% %apellido2% y mi cuenta es %cuenta12%
Mis nombres son %nombre3% %nombre4% mis apellidos  %apellido3% %apellido4% y mi cuenta es %cuenta34%

Se me ocurre leer una a una las lineas, delimitar las palabra por coma y meter cada palabra a variable y hacer un echo guardando toda la sentencia a un txt. Y nuevamente que comience el bucle....pero bue, me tranco en lograr tomar cada palabra en una variable!!!!!

Gracias de antemano!!!

Bravoacm

#1
Buenas guason9, la verdad que llevo poco tiempo en esto de programar en batch, pero por suerte tengo la "solución" a tu problema.

Suponiendo que tu archivo de texto es como lo describes:

nombre1,nombre2,apellido1,apellido2,cuenta12
nombre3,nombre4,apellido3,apellido4,cuenta23


El archivo .bat que deberías realizar es el siguiente:

Código (dos) [Seleccionar]
@echo off

for /F "tokens=1,2,3,4,5 delims=," %%a in (C:\archivo.txt) do (

echo Mis nombres son %%a, %%b, mis apellidos %%c, %%d y mi cuenta es %%e

) >> "resultado.txt"


Hasta aquí el batch que necesitas, espero que no contenga ningún fallo ya que como he mencionado anteriormente no llevo mucho tiempo programando batch pero aprendo rápido.

Un saludo y suerte.  :laugh:

guason9

Bravoacm muchas gracias!!!!

Ayer en la tarde le seguí dando al tema y lo tenía muy parecido al código que resolviste....me faltaba delimitar y notablemente lo hiciste con "delims"...Grande!!!! 

Gracias de nuevo!!!!
Saludos.

Eleкtro

#3
Cita de: guason9 en 26 Abril 2017, 15:47 PMAyer en la tarde le seguí dando al tema y lo tenía muy parecido al código que resolviste...

Ten presente encerrar la ruta del archivo entre comillas para evitar posibles errores de sintaxis en el futuro (ej. un nombre con espacios en blanco):

De esto:
Citarfor /F "tokens=1,2,3,4,5 delims=," %%a in (C:\archivo.txt) do (...)

A esto otro:
For /F "UseBackQ Tokens=1-5 Delims=," %%a In ("C:\archivo.txt") Do (...)

¡Saludos!








guason9

Cita de: Eleкtro en 26 Abril 2017, 16:40 PM
Ten presente encerrar la ruta del archivo entre comillas para evitar posibles errores de sintaxis en el futuro (ej. un nombre con espacios en blanco):

De esto:
A esto otro:
For /F "UseBackQ Tokens=1-5 Delims=," %%a in ("C:\archivo.txt") Do (...)

¡Saludos!

Excelente...buen aporte tmb
Gracias por la ayuda a ambos!!!!

Saludos