当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell:获取磁盘可用空间

作者:精品下载站 日期:2024-12-14 20:55:45 浏览:13 分类:玩电脑

PowerShell:获取磁盘可用空间


[玩转系统] PowerShell:获取磁盘可用空间

了解所有系统磁盘的确切大小和可用空间通常很有用。

这些信息可用于持续监控可用资源,或在安装新软件时作为“一次性”信息。

下面的 PowerShell 函数 Get-DiskSize 将创建一个包含磁盘可用空间信息的对象。

由于信息被包装在一个对象中,您可以轻松地对信息进行进一步处理。

该代码嵌套在 PowerShell 函数中,因此您可以轻松地将其移植到您自己的代码中。

Function Get-DiskSize {
  $Disks = @()
  $DiskObjects = Get-WmiObject -namespace "root/cimv2" -query "SELECT Name, Capacity, FreeSpace FROM Win32_Volume"
  $DiskObjects | % {
    $Disk = New-Object PSObject -Property @{
      Name           = $_.Name
      Capacity       = [math]::Round($_.Capacity / 1073741824, 2)
      FreeSpace      = [math]::Round($_.FreeSpace / 1073741824, 2)
      FreePercentage = [math]::Round($_.FreeSpace / $_.Capacity * 100, 1)
    }
    $Disks += $Disk
  }
  Write-Output $Disks | Sort-Object Name
}
Get-DiskSize | ft Name,@{L='Capacity (GB)';E={$_.Capacity}},@{L='FreeSpace (GB)';E={$_.FreeSpace}},@{L='FreePercentage (%)';E={$_.FreePercentage}}

代码的输出将类似于以下内容:

Name                                              Capacity (GB) FreeSpace (GB) FreePercentage (%)
----                                              ------------- -------------- ------------------
\?\Volume{6e1a788e-0000-0000-0000-303de3000000}\          0.85           0.28               32.3
\?\Volume{ab58b645-acea-11e4-81a2-806e6f6e6963}\          1.46           1.12               76.3
C:\                                                      907.49         207.16               22.8
Q:\                                                        21.7            8.2               37.8

根据您的需要创造性地使用函数和 Disks 对象。这是一个帮助您入门的示例:

PS C:\> $SysDisk = Get-DiskSize | ? {$_.Name -eq 'c:\'}
PS C:\> $SysDisk

Capacity Name FreePercentage FreeSpace
-------- ---- -------------- ---------
  907.49 C:\            22.8    207.04


PS C:\> Write-Host Drive $SysDisk.Name has $SysDisk.FreePercentage percent free disk
Drive C:\ has 22.8 percent free disk

[玩转系统] PowerShell:获取磁盘可用空间

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯