如何通过powershell脚本将存储在以字节为单位的变量中的输出值动态转换为KB MB GB [英] How to convert the output value stored in variable which is in bytes) into KB MB GB dynamically via powershell script

查看:95
本文介绍了如何通过powershell脚本将存储在以字节为单位的变量中的输出值动态转换为KB MB GB的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

$nametask = Get-NetBackupJob -JobId "96953"

$number = $nametask.kbytes

if ($number -lt 1KB) {
    return "$number B"
} elseif ($number -lt 1MB) {
    $number = $number / 1KB
    $number = "{0:N2}" -f $number
    return "$number KB"
} elseif ($number -lt 1GB) {
    $number = $number / 1MB
    $number = "{0:N2}" -f $number
    return "$number MB"
} elseif ($number -lt 1TB) {
    $number = $number / 1GB
    $number = "{0:N2}" -f $number
    return "$number GB"
} elseif ($number -lt 1PB) {
    $number = $number / 1TB
    $number = "{0:N2}" -f $number
    return "$number TB"
} else {
    $number = $number / 1PB
    $number = "{0:N2}" -f $number
   return "$number PB"`enter code here`
}

推荐答案

我使用这个功能

Function Get-FriendlySize {
    Param($bytes)
    switch($bytes){
        {$_ -gt 1TB}{"{0:N2} TB" -f ($_ / 1TB);break}
        {$_ -gt 1GB}{"{0:N2} GB" -f ($_ / 1GB);break}
        {$_ -gt 1MB}{"{0:N2} MB" -f ($_ / 1MB);break}
        {$_ -gt 1KB}{"{0:N2} KB" -f ($_ / 1KB);break}
        default {"{0:N2} Bytes" -f $_}
    }
}

然后只需调用传递您要转换的数字的函数

Then just call the function passing the number you'd like to convert

Get-FriendlySize 2255846589
2.10 GB

Get-FriendlySize 79410065774139
72.22 TB

您在评论中显示的数字非常非常大.对于这么大的数字,您可以使用 [bigint].这是一个更新的函数,可以处理这么大的数字.

The number you showed in your comment is really, really big. For a number that large you can use [bigint]. Here is an updated function that will handle that large of a number.

Function Get-FriendlySize {
    Param([bigint]$bytes)
    switch($bytes){
        {$_ -gt 1PB}{"{0:N2} PB" -f ($_ / 1PB);break}
        {$_ -gt 1TB}{"{0:N2} TB" -f ($_ / 1TB);break}
        {$_ -gt 1GB}{"{0:N2} GB" -f ($_ / 1GB);break}
        {$_ -gt 1MB}{"{0:N2} MB" -f ($_ / 1MB);break}
        {$_ -gt 1KB}{"{0:N2} KB" -f ($_ / 1KB);break}
        default {"{0:N2} Bytes" -f $_}
    }
}

Get-FriendlySize 9544198954419895489544198954419895441989544198954419895441989544198954
8,476,951,544,640,250,324,628,133,400,343,462,843,526,386,001,563,877,376.00 PB

这篇关于如何通过powershell脚本将存储在以字节为单位的变量中的输出值动态转换为KB MB GB的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆