Вы не предоставили никаких сведений о формате файла конфигурации.
Если для каждой строки задано одно значение имени / значения, а порядок строк не имеет значения , а не , то существует очень простое пакетное решение, которое также очень эффективно. Используйте FINDSTR для записи всех строк кроме строки localhost, а затем добавьте желаемую строку localhost.
>"%target%" (findstr /v "^http://localhost:" "%source%" & echo http://localhost:80)
Конечно, вышеописанное не сработает, если важен порядок строк.
Вы должны проверить мою утилиту поиска / замены регулярного выражения JREPL.BAT . Это очень мощный, но простой в использовании. Это чистый скрипт (гибридный пакет / JScript), который запускается на любом компьютере с Windows начиная с XP.
Используя тот же поиск / замену, который вы использовали в PowerShell, решение JREPL будет
call jrepl "(http://localhost):.*" "$1:80" /f "%source%" /o "%target%"
Я использовал группу захвата регулярных выражений, чтобы немного набрать текст.
JREPL имеет множество опций, и полная утилита встроена в утилиту. Используйте jrepl /?help
, чтобы получить описание всех доступных типов помощи.