我们正在尝试为运行的服务器处理数千个用户数据文件,我们希望提取每个人的家庭位置。 YAML的结构是这样的。文件名是* UUID * .yml,文件总数超过2000个
lastAccountName: *name*
...
homes:
home:
world: *world*
x: *x*
y: *y*
z: *z*
yaw: *yaw*
pitch: *pitch*
home2:
world: *world*
x: *x*
y: *y*
z: *z*
yaw: *yaw*
pitch: *pitch*
...
如果可能的话,我想以人类最易读的格式导出这些值,但是我不确定该怎么做,而Google并不太有用。我认为这在python中也是可能的,但我从未使用过python,也不确定如何编写python脚本。抱歉,这有点含糊,但是我对Powershell和解析YAML文件不太熟悉
编辑:我忘了提到房屋可以有任何名称,因此它可以是房屋,也可以不是房屋。它不仅限于home_,其中_是任意数字。也可以超过1但不超过20
答案 0 :(得分:1)
有一些模块可能会有所帮助。出于此答案的目的,我简要地测试了PowerShell画廊中的“ powershell-yaml”:
它提供2个命令
您可以在YAML文件上运行Get-Content
并将其通过管道传输到ConvertFrom-Yaml
:
gc C:\temp\SampleYaml.yml.txt | ConvertFrom-Yaml
类似于ConvertFrom-Json
,我认为它们将转换为PSCustomObjects,您可以在PowerShell中对其进行过滤操作。尽管我手上仅有的Yaml文件正在转换为哈希表,但这可能是文件本身的副作用。
另一个模块FXPSYaml似乎具有类似的命令。您可以在图库中找到这两个模块。
Install-Module FSPSYaml
或
Install-Module powershell-Yaml