我想添加C盘属性(空闲和已用空间)以获得总大小。
Get-PSDrive C | Select-Object -Property Free,Used
这显示了驱动器C的空闲和已用空间。我可以使用自定义属性将其转换为GB,但不确定如何将这些属性添加到一起。任何帮助将不胜感激。谢谢!
答案 0 :(得分:4)
(Get-Volume -DriveLetter C).Size
或
Get-Volume -DriveLetter C | Select-Object Size
PSDrive是PowerShell中的一种抽象,用于以类似的方式处理各种类型的对象。
答案 1 :(得分:4)
$computerHDDs= Get-WmiObject Win32_LogicalDisk -Filter "DeviceID='C:'"
$logicalDisks = @()
foreach($item in $computerHDDs)
{
$logicalDisk =[ordered]@{
Name=$item.DeviceID -replace ':' ,'';
DiskSize = "{0:N2}" -f ($item.Size/1GB) + " GB" ;
}
$logicalDisks +=$logicalDisk
}
$logicalDisks
即使在 psdrive 中,如果你能够获得免费和使用,那么两者的总和应该给你总大小
在您的情况下,您可以这样做 :
$hdd= Get-PSDrive C | Select-Object -Property Free,Used
$total= (($hdd.free + $hdd.Used)/1GB).ToString() + " GB"
$total
注意:如果只想获取值,请删除tostring方法和GB部分。仅使用第一部分
对于所有驱动器,您可以这样使用:
Get-PSDrive -PSProvider filesystem | select Name, @{n= 'Used(GB)' ; e = {"{0:N2}" -f ($_.used/1GB)}}, @{n= 'Free (GB)' ; e = {"{0:N2}" -f ($_.Free/1GB)}}, @{n= 'Total(GB)' ; e = {"{0:N2}" -f (($_.used + $_.Free)/1GB)}} | Format-Table -AutoSize
答案 2 :(得分:0)
#solution 1 with new column into select
Get-Volume -DriveLetter C|
select @{n= 'Used' ; e = {"{0:N2}" -f (($_.Size - $_.SizeRemaining)/1GB)}}, @{n= 'Free' ; e = {"{0:N2}" -f ($_.SizeRemaining/1GB)}}, @{n= 'Total' ; e = {"{0:N2}" -f ($_.Size/1GB)}}
#solution 2 with foreach
Get-Volume -DriveLetter C| foreach {
[pscustomobject]@{
Used="{0:N2}" -f (($_.Size - $_.SizeRemaining)/1GB)
Free="{0:N2}" -f ($_.SizeRemaining/1GB)
Total="{0:N2}" -f ($_.Size/1GB)
}
}