Компьютерный форум 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=220117)

Hunterus 10-11-2011 12:04 1792175

добавление строки в в файл
 
пример:
есть файл test.ini в нем есть строки:

aaa

bbb

ccc

нужно добавить после строки bbb строку zzz чтоб получилось:

aaa

bbb

zzz

ccc

как это можно реализовать через cmd или еще как?

Iska 10-11-2011 22:02 1792577

Цитата:

Цитата Hunterus
как это можно реализовать через cmd »

Например, так:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

call :GetTemporaryName

set sFile=test.ini

if exist "%sFile%" (
        >nul copy nul "%TemporaryName%"

        for /f "usebackq delims=" %%i in ("%sFile%") do (
                >>"%TemporaryName%" echo %%i

                if /i "%%i" equ "bbb" (
                        >>"%TemporaryName%" echo zzz
                )
        )

        call :BackupAndReplaceFile "%sFile%" "%TemporaryName%"
) else (
        echo File [%sFile%] not found
)

endlocal
exit /b 0
rem ==========================================================================

rem ==========================================================================
rem Функция GetTemporaryName()
rem
rem Серый форум / CMD/BAT: генерация пути для временного файла или папки
rem (http://forum.script-coding.com/viewtopic.php?id=6259)
rem ==========================================================================
:GetTemporaryName
        setlocal enableextensions enabledelayedexpansion

:NextName
        set sTempName=%temp%\temp%random%.tmp

        if exist "%sTempName%" goto :NextName

        set sProcName=%~0

        endlocal & set %sProcName:~4%=%sTempName%
        exit /b 0
rem ==========================================================================

rem ==========================================================================
:BackupAndReplaceFile
        >nul copy /y "%~1" "%~n1.bak"
        >nul copy /y "%~2" "%~1"
        del /f /q "%~2"
        exit /b 0
rem ==========================================================================

Строка будет добавлена после каждого из найденных совпадений.


Время: 19:02.

Время: 19:02.
© OSzone.net 2001-