从列表文件中远程获取序列号和型号并将其导出到安排excel

Remotely get serial number and model from list file and export it to arranged excel

我看到了一个不错的脚本 Here - 此代码从远程计算机列表中获取序列号和型号并将其导出到 csv 文件。 唯一的问题是,导出结果有许多单独的行,而不是每台计算机 ONE 行。

我是说,我想得到这个:

但我明白了:

我也检查了 Here,但无法按照描述的那样工作。

这里是批号:

@echo off
del list.csv 2>nul
for /f %%i in (pclist.txt) do (
  for /f "tokens=2 delims==" %%M in ('wmic /node:"%%i" csproduct get name /value') do for %%m in (%%M) do (
    for /f "tokens=2 delims==" %%S in ('wmic /node:"%%i" bios get serialnumber /value') do for %%s in (%%S) do (
      >>list.csv echo %%i, %%s, %%m
    )
  )
)
type list.csv
pause

如何将结果导出到一行(显示SN和型号)到每台计算机?

你可以试试这个。

@echo off
break>list.csv
for /f "delims=" %%i in (pclist.txt) do call :method %%~i
type list.csv
goto :eof

:method
set "host_name=%~1"
for /f "tokens=2* delims==" %%N in ('wmic /node:"%~1" csproduct get name /value') do set "name=%%N"
for /f "tokens=2* delims==" %%S in ('wmic /node:"%~1" bios get serialnumber /value') do set "serial=%%S"
(echo %host_name%,%serial%,%name%)>>list.csv

我们只获取每个值一次,因为我们没有将 for 循环合并到 for 循环中。虽然我们可以在不设置变量的情况下完成此操作,但在本例中它使其更具可读性。