Windows PowerShell 磁盘不足 space 脚本

Windows PowerShell out of disk space script

这是一些较大脚本的修改部分,当 F 驱动器上的磁盘 space 不足以容纳 C 驱动器中的映像时,它会删除旧的 VHD 映像。

function DiskSpace() {
$Cdisk = Get-WmiObject Win32_LogicalDisk -Filter "DeviceID='C:'" | Select-Object Size,FreeSpace
$Fdisk = Get-WmiObject Win32_LogicalDisk -Filter "DeviceID='F:'" | Select-Object Size,FreeSpace
$CdiskCapacity = $Cdisk.size/1073741824
$CdiskFree = $Cdisk.freespace/1073741824
$CdiskUSed = $CdiskCapacity-$CDiskFree
$fdisk = $fdisk.freespace/1073741824

return $Fdisk, $cdiskUsed
}

if ($fdisk -gt $cdiskfree) {
write-host "Lot's of space on F: Drive"
}
diskspace

尽管它显示 F 驱动器上有超过 1.1 TB 的空间 - 但它没有显示我的消息。

PS C:\Users\Marek> C:\backup2.ps1
1153,06732559204
221,418087005615

怎么了?

首先,我建议在这里使用不同的变量名:

$fdisk = $fdisk.freespace/1073741824

而不是重复使用 $fdisk。

其次,在这段代码中:

if ($fdisk -gt $cdiskfree) {
write-host "Lot's of space on F: Drive"
}

看起来您正在尝试访问 a) 仅在函数内部可用和 b) 在您尚未实际调用的函数中的变量。

第三,作为样式问题,您可以使用1GB而不是1073741824。