Windows PowerShell磁盘空间不足脚本
这是一些较大脚本的修改部分,当F驱动器上没有足够的磁盘空间容纳C驱动器上的映像时,该脚本会删除旧的VHD映像Windows PowerShell磁盘空间不足脚本,windows,powershell,powershell-2.0,powershell-3.0,Windows,Powershell,Powershell 2.0,Powershell 3.0,这是一些较大脚本的修改部分,当F驱动器上没有足够的磁盘空间容纳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-Ob
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。您正在做大量额外的工作,请简化您喜欢的地方
$CdiskUsed=($Cdisk.Size-$Cdisk.FreeSpace)/1GB