Войти

Показать полную графическую версию : Извлечение информации из множества файлов в один


Борис_Спектор@vk
07-02-2016, 14:14
Здравствуйте!
Подскажите пожалуйста. В папке есть множество файлов excel (csv). Мне надо из каждого файла взять всё из столбца (например D) и скопировать в тхт файл. Можно такое реализовать через cmd/bat, без открытия каждого файла?

П.С.: пример файла добавляю
https://drive.google.com/file/d/0B5wU3xnJ6vwaTnRqcldCSjBDSFE/view?usp=sharing

Foreigner
07-02-2016, 14:58
Нужен пример файла -- заголовок (если есть) и несколько строк. В общем виде, при условии, что разделителем полей служит ";", поле "D", это четвертый столбец и нет пустых полей:

@echo off
setlocal

for %%i in (*.csv) do (

for /f "skip=1 tokens=4 delims=;" %%j in ('type "%%i"') do 1>>result.txt echo %%j

)

Iska
07-02-2016, 15:01
Упакуйте образец csv-файла в архив и приложите к сообщению, либо выложите на RGhost.

Общий принцип:
@echo off
setlocal enableextensions enabledelayedexpansion

>"Result.txt" (
for %%i in (*.csv) do (
for /f "usebackq tokens=4 delims=," %%j in ("%%~i") do (
echo %%j
)
)
)

endlocal
exit /b 0

Борис_Спектор@vk
07-02-2016, 15:37
Спасибо за ответы!
Вот ссылка на пример:
https://drive.google.com/file/d/0B5wU3xnJ6vwaTnRqcldCSjBDSFE/view?usp=sharing

Борис_Спектор@vk
07-02-2016, 16:50
Столбец D это я для примера сказал. Из всех файлов нужен 8-й столбец. Что-то не получается у меня

Foreigner
07-02-2016, 17:14
54Mб. Вы смеетесь? Приведите несколько строк с начала файла.

Борис_Спектор@vk
07-02-2016, 19:44
Я могу сделать меньше. Можете пожалуйста просто подсказать как настроить чтоб брало 8-ой столбец?

Foreigner
07-02-2016, 20:38
Борис_Спектор@vk,

@echo off
setlocal

for %%i in (*.csv) do (

for /f "skip=1 tokens=8 delims=;" %%j in ('type "%%i"') do 1>>result.txt echo %%j

)


skip=1 -- нужен если в csv-файле есть строка-заголовок, если нет -- эту запись нужно убрать
tokens=8 -- восьмой столбец
delims=; -- разделить между столбцами ";". Если в файле разделители запятые, измените на запятую

PS. Файл большой, так что его обработка займет время. Надеюсь, что вообще осилит.

Борис_Спектор@vk
07-02-2016, 21:12
Супер! :up Спасибо большое! :)

Iska
07-02-2016, 21:43
54Mб. Вы смеетесь? Приведите несколько строк с начала файла. »
Я могу сделать меньше. »
Вы не заметили слова «Упакуйте … в архив»?




© OSzone.net 2001-2012