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。
这是一些较大脚本的修改部分,当 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。