Тема: CMD/BAT Замена найденой в *.txt строки
Снова требуется помощь опытных форумчан ![]()
Дело в таком вот коде:
@echo on
setlocal EnableDelayedExpansion
For /F "Delims=" %%I In ('find """restore_on_startup"": " 5.txt') Do (
Set v='%%~I')
set context=%v%
set replace= "restore_on_startup": 4,
copy nul 5.out
:: Тут начинаются проблемы
for /F "delims=" %%s in (5.txt) do (
set string=%%s
:: Или тута
set result=!string:%context%=%replace%!
echo.!result!>>5.out)
echo.%replace%
echo.%context%
echo.%result%
move 5.out 5.txt
endlocal
pauseДанный скрипт должен через поиск брать из файла строку, содержащую определённую фразу и вставлять вместо неё заранее подготовленную.
Оригинал скрипта работает хорошо, особенно, со статичными данными. Пример:
setlocal EnableDelayedExpansion
set context= "restore_on_startup": 8,
set replace= "restore_on_startup": 4,
copy nul 5.out
for /F "delims=" %%s in (5.txt) do (
set string=%%s
set string=!string:%context%=%replace%!
echo.!string!>>5.out
)
move 5.out 5.txt
pauseМожет у кого есть мысли как заставить скрипт работать?
http://www.cyberforum.ru/cmd-bat/thread913333.html - Похожая беда
http://ss64.com/nt/syntax-replace.html - Документация по set d=%c:b=a%
http://forum.script-coding.com/viewtopic.php?id=7443 - чуть менее похожая тема
Файл 5.txt
"session": {
"restore_on_startup": 5,
"restore_on_startup_migrated": true,
"startup_migration_time": "13035403453516971"
},
