miv*_*ivk 2 windows powershell hex powershell-2.0
在带有 PowerShell v.2 的 Windows 7 中,我尝试使用 来查看它的无效字符列表[System.IO.Path]::GetInvalidFileNameChars()。
在提示符下输入时,它会列出字符,每行一个。我想要的是获取他们的十六进制(或十进制)代码。
阿蒙我尝试过的事情:
ForEach ($char in [System.IO.Path]::GetInvalidFileNameChars()) {"{0:x}" -f $char}:输出字符,而不是十六进制。[System.IO.Path]::GetInvalidFileNameChars() | { $_.ToString("X2") }表达式只允许作为管道的第一个元素。
[System.IO.Path]::GetInvalidFileNameChars() | Format-Hex -Raw -Encoding Ascii术语“十六进制格式”无法识别...
ForEach ($c in [System.IO.Path]::GetInvalidFileNameChars()) {echo $c.ToString("X2")}找不到“ToString”的重载和参数计数:“1”。
我熟悉 Bash、Perl,甚至是蹩脚的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 }
Run Code Online (Sandbox Code Playgroud)
尝试
[System.IO.Path]::GetInvalidFileNameChars() | ForEach-Object {'{0:X2}' -f [int]$_ }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5486 次 |
| 最近记录: |