将批处理文件中的行连接在一起

时间:2018-11-19 23:50:11

标签: batch-file command-line concatenation

我有一台具有多个IP地址的机器。我想编写一个批处理脚本,可以将这些IP地址连接在一起。到目前为止,我已经设法解析IPCONFIG并逐行提取每个IP地址:

@echo off
setlocal EnableDelayedExpansion

FOR /F "tokens=*" %%a IN ('ipconfig ^| findstr /i "ipv4"') do (
echo Line - %%a
)

这给了我以下输出:

Line - IPv4 Address. . . . . . . . . . . : x.x.x.x
Line - IPv4 Address. . . . . . . . . . . : y.y.y.y

我想做的是在每一行的末尾获取IP地址,并以一条输出行结束,如下所示:

IPs=x.x.x.x;y.y.y.y

我不确定如何继续。任何建议,将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:1)

  • 第一个用于在冒号处分割行,
  • 第二个修剪空间。
  • 设置“ IPs =%IPs:〜1%”会删除前导分号

:: Q:\Test\2018\11\20\SO_53384288.cmd
@echo off
setlocal EnableDelayedExpansion
Set "IPs="
FOR /F "tokens=2delims=:" %%A IN (
    'ipconfig ^| findstr /i "ipv4"'
) do for %%B in (%%A) do Set "IPs=!IPs!;%%B"
Set "IPs=%IPs:~1%"
set IPs