Показать полную графическую версию : Извлечение информации из множества файлов в один
Борис_Спектор@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
)
Упакуйте образец 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 Спасибо большое! :)
54Mб. Вы смеетесь? Приведите несколько строк с начала файла. »
Я могу сделать меньше. »
Вы не заметили слова «Упакуйте … в архив»?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.