批处理 - WMIC命令输出多行添加字符串(计算机名称)

时间:2016-04-05 09:51:08

标签: batch-file redirect command disk wmic

我正在尝试制作一个批处理脚本,它将按如下方式输出固定磁盘:

计算机名称,驱动器号,可用磁盘空间

如果只有一个驱动器,则输出可以是一行;如果有多个驱动器,则输出可以是多行

现在使用以下命令,我正在获取计算机的输出,但这不会给出计算机名称。我需要包含计算机名称,因为我将使用for循环通过脚本在多台计算机上运行它。

wmic / node:"%COMPUTERNAME%" LogicalDisk其中DriveType =" 3"获取DeviceID,FreeSpace

使用批处理脚本,我可以输出计算机名称,但它只出现在磁盘空间行

之上
echo off
for /f %%i in (computers.txt) do (
echo %%i >>outputfile.txt
wmic /node:"%%i" LogicalDisk Where DriveType="3" Get DeviceID,FreeSpace' >>outputfile.txt
)

如果计算机名称为" COMPUTER1"并有3个驱动器,这是

COMPUTER1
DeviceID  FreeSpace
C:        <free space bytes>
D:        <free space bytes>
E:        <free space bytes>

我想要的是:

ComputerName DeviceID FreeSpace
COMPUTER1    C:       <free space bytes>
COMPUTER1    D:       <free space bytes>
COMPUTER1    E:       <free space bytes>

事件可以排除列标题。

我相信这可以通过for循环完成,但不确定如何。任何人都可以提供建议,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

你必须通过wmic捕获for输出,然后你可以对每一行进行后处理:

echo Computername  DeviceID  FreeSpace
for /f "delims=" %%a in ('wmic /node:"%%i" LogicalDisk Where DriveType^="3" Get DeviceID^,FreeSpace ^|find ":"') do @echo %%i  %%a