Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Извлечение информации из множества файлов в один

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

Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


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

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

Отправлено: 14:14, 07-02-2016

 

Ветеран


Сообщения: 1759
Благодарности: 966

Профиль | Цитировать


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

)

Последний раз редактировалось Foreigner, 07-02-2016 в 15:03.


Отправлено: 14:58, 07-02-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


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

Отправлено: 15:01, 07-02-2016 | #3


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Спасибо за ответы!
Вот ссылка на пример:
https://drive.google.com/file/d/0B5w...ew?usp=sharing

Последний раз редактировалось Борис_Спектор@vk, 07-02-2016 в 16:16.


Отправлено: 15:37, 07-02-2016 | #4


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


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

Последний раз редактировалось Борис_Спектор@vk, 07-02-2016 в 16:57.


Отправлено: 16:50, 07-02-2016 | #5


Ветеран


Сообщения: 1759
Благодарности: 966

Профиль | Цитировать


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

Отправлено: 17:14, 07-02-2016 | #6


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Я могу сделать меньше. Можете пожалуйста просто подсказать как настроить чтоб брало 8-ой столбец?

Отправлено: 19:44, 07-02-2016 | #7


Ветеран


Сообщения: 1759
Благодарности: 966

Профиль | Цитировать


Борис_Спектор@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. Файл большой, так что его обработка займет время. Надеюсь, что вообще осилит.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:38, 07-02-2016 | #8


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Супер! Спасибо большое!

Отправлено: 21:12, 07-02-2016 | #9


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата Борис_Спектор@vk:
Цитата Foreigner:
54Mб. Вы смеетесь? Приведите несколько строк с начала файла. »
Я могу сделать меньше. »
Вы не заметили слова «Упакуйте … в архив»?

Отправлено: 21:43, 07-02-2016 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Извлечение информации из множества файлов в один

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Восстановление - Восстановление/извлечение файлов из повреждённых RAR-архивов Guest Программное обеспечение Windows 92 28-01-2020 09:56
CMD/BAT - [решено] Копирование всех строк из множества файлов одного каталога в один выходной файл FCSMoff Скриптовые языки администрирования Windows 11 25-05-2015 14:00
Любой язык - Извлечение данных из набора xml файлов irgen Скриптовые языки администрирования Windows 2 29-10-2013 15:53
Интерфейс - [решено] Извлечение файла из источника файлов установки Котяра Microsoft Windows 2000/XP 7 20-11-2008 09:18
Извлечение и преобразование ресурсов из файлов exe, dll... beegimot Хочу все знать 1 18-08-2008 23:34




 
Переход