CyraxZ
27-11-2016, 23:28
Необходимо выполнить замену текста в файле с русским текстом. Для примера, необходимо цифру 1 заменить на 2. Кодировка файла - win-1251.
Вариант 1 - bat-файл:
@echo off
:: -----------------------------------------
::Set verfile=php.ini
::Set tmpfile=php.ini.tmp
::Set fin=1
::Set rep=2
:: -----------------------------------------
@ECHO OFF
SETLOCAL DISABLEDELAYEDEXPANSION
set INTEXTFILE=php.ini
set OUTTEXTFILE=php.ini.tmp
set SEARCHTEXT=1
set REPLACETEXT=2
FOR /F %%L IN (php.ini) DO (
SET "line=%%L"
SETLOCAL ENABLEDELAYEDEXPANSION
ECHO !line:%SEARCHTEXT%=%REPLACETEXT%!>>%OUTTEXTFILE%
ENDLOCAL
)
ENDLOCAL
В итоге получаем файл без комментариев, без пустых строк и без некоторых директив.
Вариант 2. Утилита FART (https://sourceforge.net/projects/fart-it/)
fart.exe -p -- php.ini 1 2
Эта утилита ничего не находит в сабжевом файле. Находит, только если убрать русский текст.
Вопрос: в Windows XP вообще возможно выполнить элементарную замену текста ?
Вариант 1 - bat-файл:
@echo off
:: -----------------------------------------
::Set verfile=php.ini
::Set tmpfile=php.ini.tmp
::Set fin=1
::Set rep=2
:: -----------------------------------------
@ECHO OFF
SETLOCAL DISABLEDELAYEDEXPANSION
set INTEXTFILE=php.ini
set OUTTEXTFILE=php.ini.tmp
set SEARCHTEXT=1
set REPLACETEXT=2
FOR /F %%L IN (php.ini) DO (
SET "line=%%L"
SETLOCAL ENABLEDELAYEDEXPANSION
ECHO !line:%SEARCHTEXT%=%REPLACETEXT%!>>%OUTTEXTFILE%
ENDLOCAL
)
ENDLOCAL
В итоге получаем файл без комментариев, без пустых строк и без некоторых директив.
Вариант 2. Утилита FART (https://sourceforge.net/projects/fart-it/)
fart.exe -p -- php.ini 1 2
Эта утилита ничего не находит в сабжевом файле. Находит, только если убрать русский текст.
Вопрос: в Windows XP вообще возможно выполнить элементарную замену текста ?