Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] работа с текстовыми файлами (http://forum.oszone.net/showthread.php?t=238889)

YuKar 19-07-2012 05:49 1954623

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

Iska 19-07-2012 06:07 1954627

Цитата:

Цитата YuKar
Необходимо в каждом файле оставить только четвертую (или другую ) строчку »

1. Какую именно «другую»?
2. Как определять, в каком файле оставлять четвёртую, а в каком — «другую»?

Цитата:

Цитата YuKar
Затем все файлы объединить в один. »

В каком порядке должно производиться объединение файлов?

YuKar 19-07-2012 13:01 1954793

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

Iska 19-07-2012 15:59 1954877

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


YuKar 19-07-2012 17:10 1954930

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


Время: 21:51.

Время: 21:51.
© OSzone.net 2001-