7

在 Powershell 中,我想将 $size 变量从字节转换为 GB。最好的方法是什么?到目前为止,我有以下脚本:

$dir = "C:\Users\student"
$count = @{}
$size = @{}
$hostname = @{}
gci $dir -recurse |%{
[int]$count[$_.extension] += 1
[int64]$size[$_.extension] += $_.length
}
$results = @()
$count.keys | sort |% {
$result = ""|select extension,count,size,hostname
$result.extension = $_
$result.count = $count[$_]
$result.size = $size[$_]
$result.hostname = $(get-content env:computername)
$results += $result
}
$results | ft -auto
$results | sort-object -property size -Descending | select-object -first 30| export-csv c:\"$env:computername-$(get-date -f dd-MM-yyyy-HH-mm)".csv
4

3 回答 3

24

有个窍门

$result.size = $size[$_] /1Gb

如果你想更好地查看结果,你可以截断它

$result.size = [math]::round($size[$_] /1Gb, 3)

http://technet.microsoft.com/en-us/library/ee692684.aspx

于 2013-07-04T09:42:05.087 回答
1

我将在 sqladmin 的答案中添加另一个提示。

如果对象存储在 byes 中,[math]::round($size[$_] /1Gb, 3)则将起作用。如果它以另一个单位存储(例如,Database.Size 属性MB为单位),那么您可以将其乘以度量单位并除以 GB。所以对于 MB 单位:@{Name="Size(GB)";Expression={[math]::round($_.size*1MB/1GB,4)}}.

希望能帮助到你。

于 2019-01-30T22:30:19.520 回答
0

虽然您有基本的答案 [咧嘴笑],但这是一种收集/处理/收集/输出信息的变体方式。

它使用-AsHashTable参数Group-Object来构建扩展查找表。然后遍历键,用填充名称替换空白扩展键,计算文件大小,构建 a [PSCustomObject],最后将其发送到集合。

$SourceDir = $env:TEMP

# the "-Force" parameter includes the hidden & system files
#    without = 503 files
#    with    = 535 files
$FileList = Get-ChildItem -LiteralPath $SourceDir -File -Recurse -Force

$FileTypesTable = $FileList |
    Group-Object -AsHashTable -Property Extension

$TypeInfo = foreach ($FTT_Item in $FileTypesTable.Keys)
    {
    $Extension = @('_No_Ext_', $FTT_Item)[[bool]$FTT_Item]
    $Size_Bytes = ($FileTypesTable[$FTT_Item].Length |
            Measure-Object -Sum).Sum
    [PSCustomObject]@{
        Extension = $Extension
        Count = $FileTypesTable[$FTT_Item].Count
        Size_GB = [math]::Round($Size_Bytes / 1GB, 4)
        #Size_Bytes = $Size_Bytes
        }
    }

$TypeInfo |
    Sort-Object -Property Size_GB -Descending

输出 ...

Extension Count Size_GB
--------- ----- -------
.msi          1  0.2637
.exe         35  0.1568
.wmv          4  0.0978
.mp3         12  0.0647
.log        142  0.0579
.zip          3  0.0454
.jpg         32  0.0217
.csv         67  0.0044
.xpi          1  0.0031
.txt        116  0.0026
_No_Ext_      7  0.0023
.part         1  0.0023
.ico         24  0.0001
.bat         18       0
.m3u8         1       0
.json         1       0
.xls          8       0
.ps1          1       0
.js           1       0
.xml          4       0
.mp4          8       0
.ani          1       0
.ini         25       0
.tmp         21       0
.bmp          1       0
于 2019-01-30T23:49:34.280 回答