首页 > 解决方案 > 显示 GetInvalidFileNameChars() 的 Powershell 输出的十六进制值

问题描述

在带有 PowerShell v. 2 的 Windows 7 中,我试图使用[System.IO.Path]::GetInvalidFileNameChars().

在提示符下输入时,它会列出字符,每行一个。我想要的是获得他们的十六进制(或十进制)代码。

我尝试过的事情是:

表达式只允许作为管道的第一个元素。

无法识别术语“格式十六进制”...

找不到“ToString”的重载和参数计数:“1”。

我熟悉 Bash、Perl,甚至是 lame cmd.exe,但不幸的是对 PowerShell 一无所知。

但我确信必须有一种简单易行的方法来列出这些字符的十六进制值。

更新: 感谢下面的答案,我最终使用的命令是这个命令,除了十六进制值之外,它还打印十进制值和字符本身:

ForEach ($c in [System.IO.Path]::GetInvalidFileNameChars()) { $i=([int]$c); "{0,3:d}  {1,2:x2}  {2,1}" -f $i,$i,$c }

标签: windowspowershellhexpowershell-2.0

解决方案


尝试

[System.IO.Path]::GetInvalidFileNameChars() | ForEach-Object {'{0:X2}' -f [int]$_ }

推荐阅读