批处理 - WMIC 命令输出多行添加字符串(计算机名称)
Batch - WMIC Command output multiple lines add string (Computer Name)
我正在尝试为 fixed-disk 制作一个批处理脚本,输出如下:
计算机名、盘符、可用磁盘Space
如果只有一个驱动器,输出可以是一行;如果有多个驱动器,则multiple-lines输出
现在使用以下命令,我得到了计算机的输出,但这没有给出计算机名称。我需要包含计算机名称,因为我将 运行 通过使用 for 循环的脚本针对多台计算机使用它。
wmic /node:"%COMPUTERNAME%" LogicalDisk Where DriveType="3" Get DeviceID,FreeSpace
使用批处理脚本,我可以输出计算机名称,但它只出现在 disk-space 行上方
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>
事件列 header 可以被排除。
我相信这可以通过 for 循环来完成,但不确定如何实现。任何人都可以提出建议,将不胜感激。谢谢。
您必须捕获 for
的 wmic
输出,然后您可以对每一行进行后处理:
echo Computername DeviceID FreeSpace
for /f "delims=" %%a in ('wmic /node:"%%i" LogicalDisk Where DriveType^="3" Get DeviceID^,FreeSpace ^|find ":"') do @echo %%i %%a
我正在尝试为 fixed-disk 制作一个批处理脚本,输出如下:
计算机名、盘符、可用磁盘Space
如果只有一个驱动器,输出可以是一行;如果有多个驱动器,则multiple-lines输出
现在使用以下命令,我得到了计算机的输出,但这没有给出计算机名称。我需要包含计算机名称,因为我将 运行 通过使用 for 循环的脚本针对多台计算机使用它。
wmic /node:"%COMPUTERNAME%" LogicalDisk Where DriveType="3" Get DeviceID,FreeSpace
使用批处理脚本,我可以输出计算机名称,但它只出现在 disk-space 行上方
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>
事件列 header 可以被排除。
我相信这可以通过 for 循环来完成,但不确定如何实现。任何人都可以提出建议,将不胜感激。谢谢。
您必须捕获 for
的 wmic
输出,然后您可以对每一行进行后处理:
echo Computername DeviceID FreeSpace
for /f "delims=" %%a in ('wmic /node:"%%i" LogicalDisk Where DriveType^="3" Get DeviceID^,FreeSpace ^|find ":"') do @echo %%i %%a