Powershell重写ToString()


你可能会需要已不同的单元格式输出某个数字,用字节是最精准的方式,但是有时候你更喜欢用KB或M来显示数字。
下面演示一个重写tostring()技巧:你可以自定义数字对象的结尾,得到你想要的各种格式。
这里变量的类型不会改变其类型,后续还可以进行比较和排序。

#requires -Version 1


$a = 1257657656
$a = $a | Add-Member -MemberType ScriptMethod -Name tostring -Force -Value { param($Unit = 1MB, $Digits=1, $Suffix=' MB') "{0:n$Digits}$Suffix" -f ($this/($Unit)) } -PassThru

我们再来看看例子:

PS> $a
1.199,4 MB

PS> $a.ToString(1GB, 0, ' GB')
1 GB

PS> $a.ToString(1KB, 2, ' KB')
1.228.181,30 KB

PS> $a -eq 1257657656
True

PS> $a -eq 1257657657
False

PS> $a.GetType().Name 
Int32 

原文地址:Outputting File Sizes in Different Formats

本文链接: https://www.pstips.net/outputting-file-sizes-in-different-formats.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注