-1

Как отфильтровать файлы CSV с помощью пакета, как показано ниже:

У меня есть файл с 7 столбцами, разделенными '~'

Мне нужно проверить, находится ли столбец номер 4 (456,987,654,123,456), если да, то добавить всю строку в существующий файл CSV

эта ссылка может помочь, но я не знаю, как изменить ее, чтобы использовать ее

1 ответ1

1

Это выстрел в темноте. Я не проверял это:

:: ------------------ BAT start here -----------
@echo off
del c:\Total.csv
Del c:\Final.csv

Type c:\BATTEST\*.CSV > c:\Total.csv

FOR /F "eol=- delims=~ tokens=1-5,6,7*" %%1 IN ( c:\Total.CSV ) DO IF %%4 EQ 456 ECHO %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 >> c:\Final.csv
FOR /F "eol=- delims=~ tokens=1-5,6,7*" %%1 IN ( c:\Total.CSV ) DO IF %%4 EQ 987 ECHO %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 >> c:\Final.csv
FOR /F "eol=- delims=~ tokens=1-5,6,7*" %%1 IN ( c:\Total.CSV ) DO IF %%4 EQ 654 ECHO %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 >> c:\Final.csv
FOR /F "eol=- delims=~ tokens=1-5,6,7*" %%1 IN ( c:\Total.CSV ) DO IF %%4 EQ 123 ECHO %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 >> c:\Final.csv

:: ------------------ Bat end here --------------------

Несколько предположений, которые это делает:

  • в вашем файле 8 полей, никогда больше.
  • ваши исходные файлы находятся в C:\BATTEST

Если это работает, ваш выходной файл будет в C:\Final.csv. Если в вашем файле меньше полей, то есть несколько вещей, которые необходимо изменить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .