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

时间:2016-01-22 10:30:03

标签: powershell

在Powershell中,你有一些数字的魔术后缀。也就是说,您可以使用MBGBTB等任意数字作为前缀,并且它们将返回以字节为单位的数量。

实施例

PS C:\> 1TB
1099511627776

PS C:\> 123KB
125952

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

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

IsPublic IsSerial Name  BaseType        
-------- -------- ----  --------        
True     True     Int64 System.ValueType

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

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

IsPublic IsSerial Name  BaseType        
-------- -------- ----  --------        
True     True     Int32 System.ValueType

所以问题仍然存在;

  • 这些“东西”究竟是什么?
  • 我如何创建自己的。
  • 我在哪里/如何获得我可以使用的其他魔术前缀列表?
  • 他们会不会是正确的? (ref kibibyte vs kilobyte(https://en.wikipedia.org/wiki/Kibibyte))

1 个答案:

答案 0 :(得分:5)

这些“事物”究竟是什么?

它们被称为“行政常数”。

如何创建自己的

我不相信你能。

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

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

他们会不会是正确的?

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

  

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

您可以使用1e31e6等来获得“标准”Kilo,Mega等。

$> 12345 / 1e3
12.345