批量更新文本文件中字符串的IP地址

批量更新文本文件中字符串的IP地址

请帮助我编写以下脚本,因为我需要在配置文件中更新机器 IP 地址,后跟特定字符串。脚本如下:

@ECHO OFF
SET CONFFILE="C:\Test\agent.properties"

set ip_address_string="IP Address"

for /f "tokens=3 delims=: " %%I in (
    'netsh interface ip show config "Ethernet" | findstr "IP Address:"'
) do (
    @ECHO tw.rpc.interfaceAddr=%%I>>%CONFFILE%
)

goto :EOF

请根据需要提出更正建议。

答案1

您的代码存在几个问题

  1. findstr 默认使用 RegEx 模式,以 OR 方式/独立查找以空格分隔的字符串。使用/C:参数
  2. 命令中for /f使用了第二个 cmd.exe 调用,因此<|>&必须使用插入符号对字符进行转义^
@ECHO OFF
SET "CONFFILE=C:\Test\agent.properties"
set "ip_address_string=IP Address"

for /f "tokens=3 delims=: " %%I in (
    'netsh interface ip show config "Ethernet"^| findstr /C:"%ip_address_string%"'
) do ECHO tw.rpc.interfaceAddr=%%I>>"%CONFFILE% "

相关内容