Пакетный файл петли IP systeminfo - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь выяснить, как заставить пакетный файл циклически проходить по списку ips для текста, а затем экспортировать результаты файла 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 голосов
/ 02 октября 2018

Как предложил Compo:

  • запускать systeminfo только один раз
  • использовать режим регулярных выражений по умолчанию для findstr и регулярное выражение, привязанное к началу строки (замените пробелы в строках поиска точкой; пробел объединяет строки поиска в условии ИЛИ )

:: 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"
...