批处理文件循环IP systeminfo

时间:2018-10-01 15:56:27

标签: loops batch-file ip

我正在尝试找出如何使批处理文件循环遍历文本上的ip列表,然后将systeminfo文件的结果导出到另一个文件中。

例如,-我的rackipsonly.txt文件包含以下数据:

10.1.1.1
10.1.1.2
10.1.1.3
etc...

我想拥有一批读取每行IP并返回主机名和正常运行时间并将其返回到输出文件UP_Log.txt的批处理。

这是我到目前为止所获得的,无法到达需要它工作的地方

@echo off
for /f %%a in ("C:\rackiponly.txt") do (
    echo.   
    echo %%A >> "C:\UP_LOG.txt"
    systeminfo /s:%%A | findstr /C:"Host Name:" >> "C:\UP_LOG.txt"
    systeminfo /s:%%A | findstr /C:"System Boot Time" >> "C:\UP_LOG.txt"
)

1 个答案:

答案 0 :(得分:0)

如Compo所建议:

  • 只运行一次systeminfo
  • 使用findstr的默认正则表达式模式和在行开头锚定的正则表达式(用点代替搜索字符串中的空格;空格在 OR 条件下合并搜索字符串)

:: Q:\Test\2018\10\01\SO_52594783.cmd
@echo off
Set "IPs=C:\rackiponly.txt"
(Echo:[%date% %time:~0,8%] Started processing %IPs% 
    for /f "usebackq" %%a in ("%IPs%") do (
        echo.   
        echo.%%A
        systeminfo /s:%%A | findstr /I "^Host.Name ^System.Boot.Time"
    )
) >> "C:\UP_LOG.txt"