首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析具有参数和值的文件

解析具有参数和值的文件
EN

Stack Overflow用户
提问于 2020-05-21 20:27:53
回答 1查看 30关注 0票数 0

我正在努力寻找解析这段代码的最佳方法:

代码语言:javascript
复制
Secure Boot = Enabled;[Optional:Disabled = Enabled]
Network Offline Locker = Disabled;[Optional:Disabled = Enabled]
Chassis Intrusion Detection = Disabled;[Optional:Disabled = Enabled]
Configuration Change Detection = Disabled;[Optional:Disabled = Enabled]
Password Count Exceeded Error = Enabled;[Optional:Disabled = Enabled]
CSM = Disabled;[Optional:Disabled = Enabled]
Boot Up Num-Lock Status = On;[Optional:Off = On]

我需要它,这样$Config和$ConfigValue就是例子:

代码语言:javascript
复制
$Config
Secure Boot
$ConfigValue
Enabled;[Optional:Disabled = Enabled]

因此,配置名称在“=”的左边,它的值在“=”的右边。

我现在这样做,它似乎工作得很好:

代码语言:javascript
复制
  (Get-Content "File.ini") | ForEach-Object {

      #Isolate parameter (what is left of " = ")
      $Config =  ($_ -split " = ")[0]

      #Isolate value of parametre (what is right of " = ")
     $ConfigValue = ($_ -split " = ")[1]
}

这是最有意义的吗?它工作得很好,但我总是好奇地想找到不同的方法来分析它。

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-21 20:58:17

我建议使用这样的PSCustomObject:

代码语言:javascript
复制
Get-Content -Path D:\sample\File.ini |
ForEach-Object {
    [PSCustomObject]@{
        Config      = ($_ -split '=')[0].Trim()
        ConfigValue = (($_ -split '=')[1..10].Trim()) -join '='
    }
}

我假设您的ini文件中的等号不超过10个。;-)

你有一个包含2个(或更多)等号的字符串。但您只想在第一个上分成两部分。因此,您在每个等号上拆分字符串,将第一部分用作第一部分,并将其余部分连接为第二部分。因此,您可以再次使用等号重新连接它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61934509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档