请帮助我编写以下脚本,因为我需要在配置文件中更新机器 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
您的代码存在几个问题
- findstr 默认使用 RegEx 模式,以 OR 方式/独立查找以空格分隔的字符串。使用
/C:
参数 - 命令中
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% "