powershell中的这些对象是什么(1GB,11GB,...)

xeo*_*eor 2 powershell

在Powershell中,你有一些数字的魔术后缀.也就是说,你可以前缀任意数量的MB,GB,TB,和一样,他们会以字节为单位返回的金额.

例;

PS C:\> 1TB
1099511627776

PS C:\> 123KB
125952
Run Code Online (Sandbox Code Playgroud)

这个黑魔法究竟是什么?它们显示为类型INT;

PS C:\> (123GB).getType() | ft -AutoSize

IsPublic IsSerial Name  BaseType        
-------- -------- ----  --------        
True     True     Int64 System.ValueType
Run Code Online (Sandbox Code Playgroud)

使用与普通INT相同的基本类型

PS C:\> ([int]123).getType() | ft -AutoSize

IsPublic IsSerial Name  BaseType        
-------- -------- ----  --------        
True     True     Int32 System.ValueType
Run Code Online (Sandbox Code Playgroud)

所以问题仍然存在;

  • 这些"事物"究竟是什么?
  • 我怎样才能创建自己的.
  • 在哪里/如何获得我可以使用的其他魔术前缀的列表?
  • 他们会是正确的吗?(ref kibibyte vs kilobyte(https://en.wikipedia.org/wiki/Kibibyte))

RB.*_*RB. 5

这些"事物"究竟是什么?

它们被称为"行政常数".

我怎样才能创建自己的.

我不相信你能.

在哪里/如何获得我可以使用的其他魔术前缀的列表?

你拥有从Kilobyte到Petabyte(KB,MB,GB,TB,PB)的所有东西.

他们会是正确的吗?

它们将永远是2 ^ n版本 - 我不认为这是不正确的...

是的,PowerShell团队意识到这些符号与IEC建议(kibabyte等)不一致.由于这种符号的意思是方便,并且IT空间中的大多数人对Kb比对Ki更舒服,我们选择在这种情况下在舒适性方面犯错误.抱歉.这个特殊问题很容易引发关于PowerShell内部和外部beta测试人员列表的第二次激烈辩论.~Bruce Payette,Powershell in Action

您可以使用1e3,1e6等拿到"标准"基洛,兆丰等.

$> 12345 / 1e3
12.345
Run Code Online (Sandbox Code Playgroud)