Экспорт CSV-файла в несколько CSV-файлов с помощью пакетной команды
У меня есть файл CSV 100 строк, с 5 значениями в строке. Я ищу способ экспортировать каждую строку в свой собственный CSV-файл, добавив заголовок 2 строки для каждой. Я использовал команду split, созданную в других местах, для создания нескольких файлов, но не нашел способа добавить заголовок. Также, если возможно, можно ли перетянуть одну из переменных в имя файла? Спасибо.
Пример ниже.
Orig
Jack,7,blue,001
Jane,6,red,002
Mike,4,orange,003
результат
List001.csv
first,number,favorite
Name,age,color
Jack,7,blue
...
List002.csv
first,number,favorite
Name,age,color
Jane,6,red
Это файл, который я использую:
@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
)
1 ответ
Я ищу способ экспортировать каждую строку в свой собственный CSV-файл
добавив заголовок в 2 строки к каждому.
Ваш пакетный файл слишком сложен. Нет необходимости разбивать имя файла или использовать переменную счетчика.
Используйте следующий пакетный файл (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
Пример использования:
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>
Дальнейшее чтение
- Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
- for / f - Циклическая команда против результатов другой команды.
- type - отображает содержимое одного или нескольких текстовых файлов.