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

Показать сообщение отдельно

Старожил


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

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


Код: Выделить весь код
@Echo Off
SetLocal EnableDelayedExpansion

Set SearchFor=ZZ0
Set String1=Test 123
Set String2=A random string
Set Ext=txt
Set WorkDir=test

rem Получаем список нужных файлов
For /F "delims=" %%A In ('Dir "%WorkDir%\*.%Ext%" /B') Do (
    rem Проверка на то, есть ли в файле искомые символы
    Find "%SearchFor%" "%WorkDir%\%%~A">nul&&(
        If Exist "%TEMP%\tmpfile.tmp" Del "%TEMP%\tmpfile.tmp"
        rem Обработка файла построчно
        For /F "delims=" %%B In (%WorkDir%\%%~A) Do (
            rem Проверка на то, являются ли искомые символы началом строки
            Set String=%%B
            If "!String:~,3!"=="%SearchFor%" (
                rem Дописываем две строки перед найденной и саму строку с заменой первых пятидесяти символов пробелами
		>>"%TEMP%\tmpfile.tmp" (
                    Echo.%String1%
                    Echo.%String2%
                    Echo.                                                  !String:~50!
                )
            ) Else (
                Echo %%B>>"%TEMP%\tmpfile.tmp"
            )
        )
        rem Удаляем оригинал и переносим на его место временный файл
        Del "%WorkDir%\%%~A"&&Move "%TEMP%\tmpfile.tmp" "%WorkDir%\%%~A"
    )
)
Pause&Exit

Отправлено: 05:37, 05-08-2012 | #2