Имя пользователя:
Пароль:
 

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

Старожил


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

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


AlexVong, исправил, забыл в for путь в скобки заключить
Код: Выделить весь код
@Echo Off
SetLocal EnableDelayedExpansion

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

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 "usebackq 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
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:16, 05-08-2012 | #4