我正在尝试创建一个脚本来制作我的PC的硬件清单并将其导出到excel中。
我在列出硬盘时遇到了一些问题。
假设一台PC有两个部分,C为100 GB,E为200 GB。我想以这种方式将驱动器放在一个单元格中,并带回车。
C: 100 GB
E: 200 GB
如果我想创建一个excel文件,我可以做这样的事情
$a = New-Object -comobject Excel.Application
$a.Visible = $True
$b = $a.Workbooks.Add()
$c = $b.Worksheets.Item(1)
$c.Cells.Item(1,1) = "A value in cell A1."
我知道我可以查询wmi列出硬盘:
gwmi win32_logicaldisk | ? {$_.drivetype -eq 3} | select deviceid,@{Label="Disk GB"; Expression={[math]::truncate($_.Size / 1GB)}}
但我不知道如何获得我想要的输出。提前谢谢。
答案 0 :(得分:0)
答案 1 :(得分:0)
这是如何运作的?
$a = New-Object -comobject Excel.Application
$a.Visible = $True
$b = $a.Workbooks.Add()
$c = $b.Worksheets.Item(1)
$label=gwmi win32_logicaldisk | select deviceid,@{Label="Disk GB"; Expression={"$([math]::truncate($_.Size / 1GB)) GB"}} | ft -auto -HideTableHeaders | out-string
$c.Cells.Item(1,1) = $label
答案 2 :(得分:0)
您可以从WMI查询迭代返回的驱动器,并将deviceid和“Disk GB”结果添加到字符串值。然后,您可以将结果字符串值写入Excel单元格。一种方法是这样的:
$a = New-Object -comobject Excel.Application
$a.Visible = $True
$b = $a.Workbooks.Add()
$c = $b.Worksheets.Item(1)
$outputstring = ""
foreach ($drive in $driveinfo) {
$outputstring += "$($drive.deviceid) $($drive."Disk GB") GB`n"
}
$c.cells.item(1,1) = $outputstring