Powershell 大十六进制范围

标签 powershell hex large-data largenumber

我正在尝试从 a000000000-afffffffff 生成一个十六进制范围,但这些值对于 Int32 来说太大了。出现错误 无法将值“687194767360”转换为类型“System.Int32”。错误:“值对于 Int32 来说太大或太小。”

代码如下 (0xa000000000..0xafffffffff|% ToString X10).ToLower()

最佳答案

.. 的端点,range operator , 必须符合您的数字超过的 [int] 值。

  • 此外,由于您正在尝试收集流式传输的输出 0xa000000000..0xafffffffff| % ToString X10 管道命令 在内存中完整,通过将其包含在 (...) 中并调用方法 .ToString() 在它上面,收集的输出必须适合数组,并且范围内的元素数量超过最大值。容量.NET array也是。

同样,[Linq.Enumerable]::Range()不幸的是,该方法也只接受 [int] 端点。

但是,您可以实现(自定义)解决方案,其中 PowerShell 创建每个格式化数字(字符串)并将其一个一个:

$num = 0xa000000000
while ($num -le 0xafffffffff) { ($num++).ToString('x10') }

注意:

  • 虽然这可行,但会

  • 您将无法在内存中的集合中捕获结果作为一个整体

    • 如果您要将输出流式传输到一个未过滤的文件,您最终会在类 Unix 平台/Windows 上得到一个大小为 704 GB(!)/768 GB(!) 的文件.
    • 在内存中,将输出分成小到足以放入数组的 block 是唯一的选择。

关于Powershell 大十六进制范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71186632/

相关文章:

powershell - Get-Help 找不到 ServiceFabric 模块的帮助文件

java - 将包含整数文字(十进制、十六进制和八进制表示法)的 java 字符串解释为整数值

c# - 在 C# 中根据索引值替换字节

PHP - 从目录中读取大量文件

具有多个选项卡的 PHPExcel 大数据集 - 内存耗尽

azure - 仅当在具有 azure 访问权限的 Windows 帐户上运行时,使用 ClientID 访问 Blob 存储才有效

wpf - 使用 powershell 显示一个小 wpf 表单

python - 在大数据集上使用 csv 来分隔参数时遇到问题

PowerShell ISE : Strange output when executing java -version

c++ - C++ 中具有十六进制值的数组