Я пытаюсь создать простой командный файл, который заменит строку в текстовом файле другой строкой, но оставит все остальные строки в файле такими же.Где-то в интернете я нашел скрипт, который немного изменил и придумал следующий код.Однако по какой-то причине этот код не отображает строки, оканчивающиеся на «= 0», в новый текстовый файл, как должно быть, а отображает их на экране (даже с отключенным эхом).У кого-нибудь есть какие-либо предложения?
Большое спасибо.
@echo off
if exist prod.ini del new_prod.ini
for /f "tokens=*" %%a in (prod.ini) do call :AddText "%%a"
del prod.ini
rename new_prod.ini prod.ini
exit /b
:AddText %1
@echo on
echo %1
@echo off
set Text=%~1%
if "%Text%"=="server=server-2.domain.com" (
echo server=server-3.domain.com>> new_prod.ini
) else (
echo %~1%>> new_prod.ini
)
exit /b
В исходном файле есть несколько строк, подобных следующим, но новый файл после сценария пропустил эти строки.Сценарий работает точно так же, как и ожидалось на замену, а также на 20 или около того других строк.Только строки, которые выглядят следующим образом, вызывают проблемы.
_sflag=0
debug_lvl=0
sel_test_lvl=0
ipc_error_logging_lvl=0
ipc_client_debug_lvl=0
ipc_server_debug_lvl=0
Еще раз спасибо.
edit: Это будет выполняться на сотнях компьютеров в организации, и использование сторонних инструментов на самом деле не являетсявариант, так как установка другого приложения на всех машинах (хотя теоретически это возможно с помощью программного обеспечения для удаленного управления, которое мы будем использовать) нежелательна.
Спасибо.