Aplicar función al contenido de un archivo CSV

Aplicar función al contenido de un archivo CSV

Actualmente estoy trabajando en un archivo por lotes que me está causando dificultades. Tengo un archivo .CSV generado que contiene un encabezado y dos columnas. El archivo también está codificado como ASCII (¡descubrir esto fue una verdadera revelación!). La segunda columna contiene una lista de archivos de texto que necesito leer y aplicar una función a cada una de las entradas contenidas en ellos.

Pensé en usar copiar o escribir >> para fusionar los archivos en uno solo que sería más fácil de analizar, pero me cuesta leer el contenido del csv y usarlo...

Hasta ahora estoy usando

for /f "skip=1 usebackq tokens=1-2 delims=," %%a in ("%temp%\list.txt") do echo %%b>>"%temp%\newfile.txt"

pero no funciona... (todo lo que obtengo es un archivo vacío) y parece que no puedo entender qué hacer a continuación para aplicar una función a todos los archivos enumerados para luego poder procesar su contenido combinado. He estado luchando con esto durante dos días y estoy empezando a molestarme por lo que parece simple pero parece que no puedo entenderlo.

Aquí está el contenido de mi archivo CSV.

Número de cliente,Nombre del cliente
44456,James Bond
33356,Doctor Evil

Y tengo una carpeta que contiene archivos llamados James Bond.txt, Mister Rogers.txt, Chief Bob,txt y Doctor Evil.txt que contienen la información del cliente. Entonces, lo que quiero es reunir solo los nombres requeridos según lo dicta el archivo CSV y luego imprimir la lista completa de todo de una sola vez.

Espero que esto aclare las cosas (lo sé, es difícil de explicar)

EDITAR Probé el código propuesto y todavía no funciona... Todo lo que obtengo es un archivo vacío... pero por alguna razón creo que parece prometedor.

Respuesta1

Siempre que las Client namecolumnas tengan archivos con el mismo nombre en la carpeta con .txtextensión, el siguiente lote debería ser suficiente.

:: Q:\TEST\2017-05\25\DEMO\SU_1212933.cmd
@Echo off
For %%A in (".\folder") Do Set "folder=%%~fA"
( for /f "skip=1 usebackq tokens=1* delims=," %%a in (
   ".\list.csv"
  ) do If Exist "%folder%\%%b.txt" Type "%folder%\%%b.txt"  
) >".\Report.txt"

Para demostrar este es mi entorno de prueba.

> tree . /F
Q:\TEST\2017-05\25\DEMO
│   SU_1212933.cmd
│   list.csv
│   Report.txt
└───folder
        James Bond.txt
        Doctor Evil.txt

el contenido de los dos archivos txt enfolder

> type folder\*.txt

folder\James Bond.txt

#################################################
## this is file "James Bond.txt" in folder     ##
#################################################

folder\Doctor Evil.txt

#################################################
## this is file "Doctor Evil.txt" in folder    ##
#################################################

Después de ejecutar el lote, el archivo report.txt contiene:

> type Report.txt
#################################################
## this is file "James Bond.txt" in folder     ##
#################################################
#################################################
## this is file "Doctor Evil.txt" in folder    ##
#################################################

información relacionada