Exporte um arquivo csv para vários arquivos csv com o comando batch

1

Eu tenho um arquivo csv de 100 linhas, com 5 valores por linha. Eu estou procurando uma maneira de exportar cada linha para seu próprio arquivo csv adicionando um cabeçalho de 2 linhas para cada um. Eu usei o comando split visto em outro lugar para criar vários arquivos, mas não encontrei uma maneira de acrescentar o cabeçalho. Além disso, se possível, uma das variáveis pode ser puxada para o nome do arquivo? Obrigado.

Exemplo abaixo.

Orig

Jack,7,blue,001   
Jane,6,red,002   
Mike,4,orange,003

resultado

List001.csv   
first,number,favorite   
Name,age,color   
Jack,7,blue   

...

List002.csv   
first,number,favorite   
Name,age,color   
Jane,6,red   

Este é o arquivo que estou usando:

@echo off
setLocal EnableDelayedExpansion

set limit=1
set file=userlist.csv
set lineCounter=1
set filenameCounter=101

set name=Usertable
set extension=csv
for %%a in (%file%) do (
    set "name=%%~na"
    set "extension=%%~xa"
)

for /f "tokens=*" %%a in (%file%) do (
    set splitFile=%name%%filenameCounter%%extension%
    if %lineCounter% gtr %limit% (
        set /a filenameCounter=%filenameCounter% + 1
        set lineCounter=1
        echo Created %splitFile%.
    )
    echo %%a>> %splitFile%

    set /a lineCounter=%lineCounter% + 1
)
    
por sagac 01.04.2016 / 19:48

1 resposta

1

Estou procurando uma maneira de exportar cada linha para seu próprio arquivo csv

adding a 2 line header to each.

Seu arquivo de lote é muito complicado. Não há necessidade de dividir o nome do arquivo ou usar uma variável de contador.

Use o seguinte arquivo de lote (example.cmd):

@echo off
setlocal enabledelayedexpansion
for /f "tokens=1-4 delims=," %%i in ('type userlist.csv') do (
  echo first,number,favorite>>List%%l.csv
  echo Name,age,color>>List%%l.csv
  echo %%i,%%j,%%k>>List%%l.csv
  )
endlocal

Exemplo de uso:

F:\test>type userlist.csv
Jack,7,blue,001
Jane,6,red,002
Mike,4,orange,003

F:\test>example

F:\test>type List001.csv
first,number,favorite
Name,age,color
Jack,7,blue

F:\test>type List002.csv
first,number,favorite
Name,age,color
Jane,6,red

F:\test>type List003.csv
first,number,favorite
Name,age,color
Mike,4,orange

F:\test>

Leitura Adicional

por 01.04.2016 / 20:41