如何在PowerShell中读取INI文件的特定部分?

时间:2019-03-22 06:27:44

标签: powershell ini

我想阅读INI文件的特定部分。 我的INI文件如下所示:

[Setting]
Level=5
Name=x:\process.log
Log=1
Type=2

[State]
stage=10
step=Capture
status=BEGIN
Step=
Status=

我想阅读Setting部分和值Name

我尝试过:

function Get-IniFile {
    Param(
        [Parameter(Mandatory=$true)]
        [String]$path
    )
    $inifile = $path
    $ini = @{}

    Get-Content $inifile | ForEach-Object {
        $_.Trim()
    } | Where-Object {
        $_ -notmatch '^(;|$)'
    } | ForEach-Object {
        if ($_ -match '^\[.*\]$') {
            $section = $_ -replace '\[|\]'
            $ini[$section] = @{}
        } else {
            $key, $value = $_ -split '\s*=\s*', 2
            $ini[$section][$key] = $value
        }
    }

    $read = $ini.Setting.Name
    $read
}

我想使用CMD来运行它:

Script.ps1 Get-IniFile -path pathINIfile Setting Name Setting_Name.cmd

我运行脚本,INI文件的路径,读取Setting节,读取Name的值,然后将值写入Setting_Name.cmd

0 个答案:

没有答案