Atualmente estou trabalhando em um arquivo em lote que está me dificultando. Eu tenho um arquivo .CSV gerado que contém um cabeçalho e duas colunas. O arquivo também está codificado como ASCII (descobrir isso foi uma verdadeira revelação!) A segunda coluna contém uma lista de arquivos de texto que preciso ler e aplicar uma função a cada uma das entradas contidas neles.
Pensei em usar copy ou type >> para mesclar os arquivos em um único que seria mais fácil de analisar, mas estou tendo dificuldade em ler o conteúdo do csv e usar o conteúdo...
Até agora estou usando
for /f "skip=1 usebackq tokens=1-2 delims=," %%a in ("%temp%\list.txt") do echo %%b>>"%temp%\newfile.txt"
mas não está funcionando... (tudo o que recebo é um arquivo vazio) e não consigo descobrir o que fazer a seguir para aplicar uma função a todos os arquivos listados para que eu possa processar seu conteúdo combinado. Estou lutando com isso há dois dias e estou começando a ficar irritado com o que parece simples, mas não consigo entender.
Aqui está o conteúdo do meu arquivo CSV
Número do cliente,Nome do cliente
44456,James Bond
33356,Doctor Evil
E eu tenho uma pasta contendo arquivos chamados James Bond.txt, Mister Rogers.txt, Chief Bob,txt e Doctor Evil.txt que contêm as informações do cliente. Então, eu quero reunir apenas os nomes necessários conforme ditado pelo arquivo CSV e depois imprimir a lista completa de tudo de uma vez.
Esperando que isso esclareça as coisas (eu sei, é difícil de explicar)
EDITAR Tentei o trecho de código proposto e ainda não funciona... Tudo que consigo é um arquivo vazio... mas por algum motivo acho que parece promissor.
Responder1
Desde que as Client name
colunas tenham arquivos com nomes iguais na pasta com .txt
extensão, o lote a seguir deve servir.
:: 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 demonstrar este é o meu ambiente de teste
> tree . /F
Q:\TEST\2017-05\25\DEMO
│ SU_1212933.cmd
│ list.csv
│ Report.txt
│
└───folder
James Bond.txt
Doctor Evil.txt
o conteúdo dos dois arquivos txt emfolder
> 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 ##
#################################################
Depois de executar o lote, o arquivo report.txt contém:
> type Report.txt
#################################################
## this is file "James Bond.txt" in folder ##
#################################################
#################################################
## this is file "Doctor Evil.txt" in folder ##
#################################################