Maza Faka
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору mitrichbel Скачай утилиту "NIRCMD", скопируй в папку WINDOWS и запусти этот код: Код: @echo off REM chcp 1251>nul set folder=c:\test for /f "tokens=1,2,4*" %%a in ('dir /t:w "%folder%\*.txt" ^| find /i "txt"') do ( if "%%d"=="" ( call:mod %%a %%b %%c) else (call:mod %%a %%b "%%c %%d") ) pause goto :eof :mod set m_time=%~1 %~2:00 set m_time=%m_time:.=-% if exist %folder%\tmp.txt del /f /q tmp.txt for /f "delims=" %%f in ( 'more "%folder%\%~3"') do echo %%f | findstr /i /v /c:"ненужный текст">> %folder%\tmp.txt del /f /q "%folder%\%~3" ren %folder%\tmp.txt %3 nircmd setfiletime "%folder%\%~3" "" "%m_time%" | Путь и ненужное слово заменишь на свои(выделено жирным). Если есть файлы с кириллицей, то удали во второй строчке оператор "REM". Добавлено: newhome Цитата: Например, заменить в 3 строчке 4 слово "word.001" на "word.002") не с помощью sbs2.com | А использовать sbs2.com религия не позволяет? Есть и другие утилиты для замены подстрок в тексте, например "GSAR"( синтаксис: gsar.exe -r"old_text" -s"new_text" -o test.txt ) Ну, а если ты, всё-таки хочешь исключительно встроенными средствами, то можно так: Вариант 1, для всех строк Код: @echo off for /f "delims=" %%a in (test.txt) do ( echo %%a | findstr /i /c:"word.001">nul if errorlevel 1 ( echo %%a>> out.txt) else ( for %%b in (%%a) do ( if /i "%%b"=="word.001" ( echo | set /p= word.002>> out.txt) else (Echo | set /p=%%b>> out.txt) ) echo.>> out.txt) ) del /f /q test.txt ren out.txt test.txt | Вариант 2 для 3-ей строки: Код: @echo off set count=0 for /f "delims=" %%a in (test.txt) do call :subrout "%%a" del /f /q test.txt ren out.txt test.txt goto :eof :subrout set /a count+=1 if %count% equ 3 ( for %%b in (%~1) do ( if /i "%%b"=="word.001" ( echo | set /p= word.002>> out.txt) else (Echo | set /p=%%b>> out.txt) ) echo.>> out.txt ) else (echo %~1>> out.txt) |
| Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 09:59 14-07-2007 | Исправлено: Maza Faka, 12:05 14-07-2007 |
|