Как через командную строку Windows заменить подстроку в файле?
Есть файл index.html. Нужно через командную строку заменить подстроку lang="ru" на lang="en". Как это можно сделать? Нужно именно через cmd, а не PowerShell и т.п.
maxsmeller, это вопрос :-) Подскажите хоть, в какую сторону копать, какую команду использовать. Например, пытался использовать команду findstr, но она не работает так, как нужно. Например, при таком коде findstr /r "html" %%l\%dir%\index.html > %%l\%dir%\index_tmp.html команда просто удаляет все, что внутри тега html.
И всё-таки, в чём смысл таких ограничений в инструментах?
В любом текстовом редакторе такую замену по времени сделать быстрее, чем написать этот вопрос.
kalapanga, нужно периодически заменять языки в 40 файлах, и много чего еще делать (заменять файлы картинок и скриптов), но пока нужно разобраться, как делать замену текста.
ymfront, Используйте sed и соответствующее регулярное выражение. sed для винды можно найти в разных местах, например в составе msys2 или git bash.
findstr то же поддерживает регулярные выражения, но в сильно урезанном виде. Ну и findstr не совсем подходит для этого - она может работать как фильтр, но не как редактор. sed же может в обоих режимах.
ymfront, так и знал, что cmd здесь дело десятое. "Средствами cmd" - это я понимаю как "используя только внутренние команды". А Вам сгодится абсолютно любая утилита для работы с текстом. Хоть сами напишите, хоть первую же из выдачи гугла возьмите, например https://nhutils.ru/blog/замена-текста-в-подкаталог...