我正在尝试制作一个批处理脚本,它将按如下方式输出固定磁盘:
计算机名称,驱动器号,可用磁盘空间
如果只有一个驱动器,则输出可以是一行;如果有多个驱动器,则输出可以是多行
现在使用以下命令,我正在获取计算机的输出,但这不会给出计算机名称。我需要包含计算机名称,因为我将使用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循环完成,但不确定如何。任何人都可以提供建议,将不胜感激。感谢。
答案 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