我的问题与Hey Scripting Guy 的博客文章有关!由 Windows PowerShell (Azure) 团队的成员 June Blender 编写。
“要从 JSON 文件中获取 JSON 字符串,请使用 Get-Content cmdlet 及其 Raw 参数。”
PS C:\> Get-Content -Raw -Path .\myJson.json
“Raw 参数告诉 Get-Content 忽略换行符并返回单个字符串。”
认为这看起来很方便 - 我想了解有关此参数的更多信息,我键入以下命令并收到意外结果:
PS C:\> Update-Help
PS C:\> Get-Help Get-Content -Parameter Raw
Get-Help : No parameter matches criteria Raw. ##error etc.
PS C:\> Get-Help Get-Content -Full | Out-String | Select-String 'Raw'
PS C:\>
在 ISE 中,intellisense 提供“raw”作为“Get-Content”的参数,而在正常的 shell 中,tab-complete 告诉我这是一个真实的参数。我似乎无法找到任何解释其用法的文档。“Help Get-Content -Online”也不返回任何内容。
PS C:\> Get-Command * -ParameterName 'raw'
Cmdlet Get-Content Microsoft.PowerShell.Management
Get-Command 确认参数存在,不是“通用参数”集的成员,并且存在于我的 PowerShell 版本中。我的问题:
为什么“Get-Content”的某些参数在我的帮助文件或在线中不可见,但仍然可以使用,特别是 -raw、-stream 和 -encoding。是否有其他 Cmdlet 的类似隐藏参数列表?
我在工作组环境中的 Windows 8.1 上运行 PowerShell v4。谢谢你的帮助。
更新:
$PSVersionTable
PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.34014
BuildVersion 6.3.9600.16394
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion 2.2
$PSUICulture; $PSCulture
en-GB
en-NZ