如果磁盘大小小于 X,则停止 Powershell 脚本
Stop Powershell Script if disk size is less than X
我想知道你们是否可以帮助我。
如果分区 E 的磁盘大小小于 10GB,我需要停止 powershell 脚本,如果大于 10GB,则继续。
到目前为止,我设法列出了我的磁盘大小。
Get-WmiObject -Class win32_logicaldisk | Format-Table DeviceId,@{n="FreeSpace";e={[math]::Round($_.FreeSpace/1GB,2)}}
我得到了这个结果:
DeviceId
Freespace
A
0
C
77.9
D
0
E
34.05
所以,如果 E 单元小于 10GB,我想停止 powershell 脚本。
我该怎么做?
提前致谢
如果你想把 E 的自由空间放在一个变量中,你可以这样做:
$VarSpace = $(Get-WmiObject -Class win32_logicaldisk | Where-Object -Property Name -eq C:).FreeSpace/1GB
然后你可以做一个简单的 if 来检查 :
if ($VarSpace -le 10){ <Something for stopping you script like exit> }
您可以为此使用 Get-Volume cmdlet 或 Get-CimInstance
而不是旧的 Get-WmiObject
:
$freeOnE = (Get-CimInstance -ClassName win32_logicaldisk | Where-Object {$_.DeviceID -eq 'E:'}).FreeSpace / 1GB
或
$freeOnE = (Get-Volume -DriveLetter E).SizeRemaining / 1GB
如果此值低于 10Gb,则退出您的 PowerShell 会话
if ($freeOnE -lt 10) { exit }
我想知道你们是否可以帮助我。 如果分区 E 的磁盘大小小于 10GB,我需要停止 powershell 脚本,如果大于 10GB,则继续。
到目前为止,我设法列出了我的磁盘大小。
Get-WmiObject -Class win32_logicaldisk | Format-Table DeviceId,@{n="FreeSpace";e={[math]::Round($_.FreeSpace/1GB,2)}}
我得到了这个结果:
DeviceId | Freespace |
---|---|
A | 0 |
C | 77.9 |
D | 0 |
E | 34.05 |
所以,如果 E 单元小于 10GB,我想停止 powershell 脚本。 我该怎么做?
提前致谢
如果你想把 E 的自由空间放在一个变量中,你可以这样做:
$VarSpace = $(Get-WmiObject -Class win32_logicaldisk | Where-Object -Property Name -eq C:).FreeSpace/1GB
然后你可以做一个简单的 if 来检查 :
if ($VarSpace -le 10){ <Something for stopping you script like exit> }
您可以为此使用 Get-Volume cmdlet 或 Get-CimInstance
而不是旧的 Get-WmiObject
:
$freeOnE = (Get-CimInstance -ClassName win32_logicaldisk | Where-Object {$_.DeviceID -eq 'E:'}).FreeSpace / 1GB
或
$freeOnE = (Get-Volume -DriveLetter E).SizeRemaining / 1GB
如果此值低于 10Gb,则退出您的 PowerShell 会话
if ($freeOnE -lt 10) { exit }