2015-12-12 6 views
0

У меня есть куча CSV-файлов в каталоге. Я хочу прокрутить каждый файл, избавиться от первых 5 строк в каждом файле и записать оставшиеся строки в файл CSV «Consolidated_wo_first5.csv». Мои файлы «;» разделены.Как пропустить CSV-файлы, пропустить первые 5 строк и записать в консолидированный CSV

Мои окна Сценарий:

set sourcedir=C:\transport\in 
set targetdir=C:\transport\out 

for %%F in (%sourcedir%\*.csv) do (for %%f "skip=5 tokens=* delims=;" in (%%~nf) do echo %%a)>>%targetdir%\Consolidated_wo_first5.csv 

Пример входного файла:

Row1 ;Row1;Row1 
Row2;Row2;Row2 
Row3;Row3;Row3 
Row4;Row4;Row4 
Row5;Row5;Row5 
Row6;Row6;Row6 
Row7;Row7;Row7 

Спасибо за вашу помощь!

+2

В соответствии с «дубликатами»: это не дубликаты данных, это повторение команды. Аасини сказал 'ПРИМЕЧАНИЕ: Вставьте @echo вне линии в начале вашего кода! 'Это подавляет повторение команды. – Stephan

+0

Я настоятельно рекомендую удалить последнюю часть (начиная с *) Используя скрипт Aacini, [...] «*) из вопроса, потому что это не что иное, как дублирующий комментарий к ответу Аасини, который не вносит ничего полезного в вопрос ... – aschipfl

ответ

1

Просто некоторые незначительные детали в вашем коде:

set sourcedir=C:\transport\in 
set targetdir=C:\transport\out 

(for %%F in (%sourcedir%\*.csv) do (
    for /F "usebackq skip=5 delims=" %%f in ("%%F") do (
     echo %%f 
    ) 
)) > %targetdir%\Consolidated_wo_first5.csv 
  • %% е и %% F неуместны.
  • вариант
  • Параметр/F был пропущен во второй ФОР, а %% е был в неправильном месте
  • Если вы хотите комплектных линий, то проще использовать «delims =»
  • удобно заключить имя файла в кавычках, и в этом случае требуется опция «usebackq».
  • Программа работает быстрее, если >> append redirection изменено с помощью> replace one, и в этом случае весь FOR должен быть заключен в круглые скобки.
+0

Мы добираемся туда! Но я получаю в виде выходных файлов дубликаты. Каждая строка имеет два значения: 'C: \ transport> (echo File 1 Row 9 Column 1; File 1 Row 9 Column 2; File 1 Row 9 Column 3) Файл 1 Row 9 Column 1; File 1 Row 9 Столбец 2; Файл 1 Строка 9 Столбец 3' Как я могу избежать первой строки? – Thomas

+2

Извините. Вы не можете публиковать предполагаемый вывод, если вы не публикуете ввод! Что вы думаете, если я скажу: «Он работает правильно здесь, с _my data_»? ** ': /' ** Пожалуйста, разместите небольшой пример данных, показывающий ошибку. Измените вопрос; НЕ публикуйте данные в комментариях! ** ПРИМЕЧАНИЕ **: Вставьте строку '@echo off' в начале кода! – Aacini

+0

Извините, моя вина. Прекрасно работает после добавления «@echo off». – Thomas

Смежные вопросы