Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

Ответить
Настройки темы
CMD/BAT - [решено] работа с текстовыми файлами

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


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

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


Здравствуйте.
В папке содержится произвольное число файлов с расширением txt и разными именами. Необходимо в каждом файле оставить только четвертую (или другую ) строчку и в начало этой строчки вписать имя файла. Затем все файлы объединить в один. До этого шага я все делал в bat-файле.
Заранее спасибо.

Отправлено: 05:49, 19-07-2012

 

Ветеран


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

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


Цитата YuKar:
Необходимо в каждом файле оставить только четвертую (или другую ) строчку »
1. Какую именно «другую»?
2. Как определять, в каком файле оставлять четвёртую, а в каком — «другую»?

Цитата YuKar:
Затем все файлы объединить в один. »
В каком порядке должно производиться объединение файлов?

Отправлено: 06:07, 19-07-2012 | #2



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

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


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


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

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


Извините, что неточно сформулировал.
Оставить во всех файлах только четвертую строчку.
Под словом "другую" я имел ввиду, в принципе, делать то же самое с третьей, пятой и т.д..
Если вначале строки будет имя файла, порядок объединения не имеет значения.

Отправлено: 13:01, 19-07-2012 | #3


Ветеран


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

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


YuKar, например, так:
читать дальше »
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sDestFile=SummaryLog.log

>nul copy nul "%sDestFile%"

for %%i in (*.txt) do (
	call :GetStringFromFile "%%~fi" 4
	>>"%sDestFile%" echo %%~fi: !StringFromFile!
)

endlocal
exit /b 0

:GetStringFromFile
	setlocal enableextensions enabledelayedexpansion
	
	set sFuncName=%~0
	set sFile=%~1
	set /a iSkipStrings = %~2 - 1
	
	for /f "usebackq skip=%iSkipStrings% delims=" %%i in ("%sFile%") do (
		set sValue=%%i
		goto :Break
	)
	:Break
	
	endlocal & set %sFuncName:~4%=%sValue%
	exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:59, 19-07-2012 | #4


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


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

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


Спасибо Iska.
Выходной файл такой, как я хотел.

Отправлено: 17:10, 19-07-2012 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Инфо - Работа с INF-файлами -devICE- Наборы обновлений для Windows XP/2003/Windows 7 6 17-10-2022 01:11
CMD/BAT - [решено] работа с txt файлами Anufriev Скриптовые языки администрирования Windows 12 12-11-2015 08:23
CMD/BAT - работа с 2 текстовыми файлами, именами файлов и всё в цикле Тишина Скриптовые языки администрирования Windows 4 15-07-2012 20:26
C/C++ - Работа с файлами D@n1k007 Программирование и базы данных 2 19-06-2010 16:06
Работа с *.lng файлами Artya Хочу все знать 2 18-03-2003 14:43




 
Переход