CMD/BAT - Извлечение информации из множества файлов в один

Ответить
Аватара пользователя
Борис_Спектор@vk

CMD/BAT - Извлечение информации из множества файлов в один

Сообщение Борис_Спектор@vk »

Здравствуйте!

Подскажите пожалуйста. В папке есть множество файлов excel (csv). Мне надо из каждого файла взять всё из столбца (например D) и скопировать в тхт файл. Можно такое реализовать через cmd/bat, без открытия каждого файла?



П.С.: пример файла добавляю

https://drive.google.com/file/d/0B5w...ew?usp=sharing
Аватара пользователя
Foreigner

Re: CMD/BAT - Извлечение информации из множества файлов в один

Сообщение Foreigner »

Нужен пример файла -- заголовок (если есть) и несколько строк. В общем виде, при условии, что разделителем полей служит ";", поле "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

Re: CMD/BAT - Извлечение информации из множества файлов в один

Сообщение Iska »

Упакуйте образец 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

Re: CMD/BAT - Извлечение информации из множества файлов в один

Сообщение Борис_Спектор@vk »

Спасибо за ответы!

Вот ссылка на пример:

https://drive.google.com/file/d/0B5w...ew?usp=sharing
Аватара пользователя
Борис_Спектор@vk

Re: CMD/BAT - Извлечение информации из множества файлов в один

Сообщение Борис_Спектор@vk »

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

Re: CMD/BAT - Извлечение информации из множества файлов в один

Сообщение Борис_Спектор@vk »

54Mб. Вы смеетесь? Приведите несколько строк с начала файла.
Аватара пользователя
Foreigner

Re: CMD/BAT - Извлечение информации из множества файлов в один

Сообщение Foreigner »

Я могу сделать меньше. Можете пожалуйста просто подсказать как настроить чтоб брало 8-ой столбец?
Аватара пользователя
Борис_Спектор@vk

Re: CMD/BAT - Извлечение информации из множества файлов в один

Сообщение Борис_Спектор@vk »

Борис_Спектор@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

Re: CMD/BAT - Извлечение информации из множества файлов в один

Сообщение Борис_Спектор@vk »

Супер! Изображение Спасибо большое! Изображение
Аватара пользователя
Борис_Спектор@vk

Re: CMD/BAT - Извлечение информации из множества файлов в один

Сообщение Борис_Спектор@vk »

Цитата Борис_Спектор@vk:




Цитата Foreigner:



54Mб. Вы смеетесь? Приведите несколько строк с начала файла.
CMD/BAT - Извлечение информации из множества файлов в один




Я могу сделать меньше.
CMD/BAT - Извлечение информации из множества файлов в один




Вы не заметили слова «Упакуйте … в архив»?
Ответить

Вернуться в «Скриптовые языки администрирования Windows»