我正在尝试创建一个函数来返回以MB为单位的空闲驱动器空间量。该函数将路径名作为参数,并且必须处理挂载点。我的驱动器设置如下:
所以我想做一些类似的事情:
function Get-FreeSpace {
param (
$path
);
# iterate through and find the volume, detect if in a mount point and return free space
#
return [int]$freeSpace;
}
我已经考虑过在我的函数中使用这个数组作为起点,但是我被卡住了。
$vols = Get-WMIObject Win32_Volume -filter "DriveType=3" -computer $computerName | Select Caption,DriveLetter,Label,@{Name="DiskSize(GB)";Expression={[decimal]("{0:N1}" -f($_.capacity/1gb))}},@{Name="PercentFree(%)";Expression={"{0:P2}" -f(($_.freespace/1mb)/($_.capacity/1mb))}}
$vols
返回PSCustomObject
类型的System.Array
。因此,如果我将以下路径传递给函数:
G:\Data\My\Test\Path
G:\Data
它将查找G:\Data
挂载点的空闲空间。
如果我向它传递G:\Some\Other\Path
,它将返回G:\
驱动器的可用空间。我想这样使用它:$freeSpace = Get-FreeSpace "G:\Some\Other\Path"
如果有任何帮助,我将不胜感激。
https://stackoverflow.com/questions/13248325
复制相似问题