Показать полную графическую версию : [решено] работа с текстовыми файлами
Здравствуйте.
В папке содержится произвольное число файлов с расширением txt и разными именами. Необходимо в каждом файле оставить только четвертую (или другую ) строчку и в начало этой строчки вписать имя файла. Затем все файлы объединить в один. До этого шага я все делал в bat-файле.
Заранее спасибо.
Необходимо в каждом файле оставить только четвертую (или другую ) строчку »
1. Какую именно «другую»?
2. Как определять, в каком файле оставлять четвёртую, а в каком — «другую»?
Затем все файлы объединить в один. »
В каком порядке должно производиться объединение файлов?
Извините, что неточно сформулировал.
Оставить во всех файлах только четвертую строчку.
Под словом "другую" я имел ввиду, в принципе, делать то же самое с третьей, пятой и т.д..
Если вначале строки будет имя файла, порядок объединения не имеет значения.
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
Спасибо Iska.
Выходной файл такой, как я хотел.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.