Подтвердить что ты не робот

Прочитать файл свойств в PowerShell

Предположим, что у меня есть файл .properties и его содержимое:

app.name=Test App
app.version=1.2
...

как я могу получить значение app.name?

4b9b3361

Ответ 1

Вы можете использовать ConvertFrom-StringData для преобразования пары Key = Value в хеш-таблицу:

$filedata = @'
app.name=Test App
app.version=1.2
'@

$filedata | set-content appdata.txt

$AppProps = convertfrom-stringdata (get-content ./appdata.txt -raw)
$AppProps

Name                           Value                                                                 
----                           -----                                                                 
app.version                    1.2                                                                   
app.name                       Test App                                                              

$AppProps.'app.version'

 1.2

Ответ 2

Если вы работаете с powershell v2.0, вам может не хватать аргумент "-Raw" для Get-Content. В этом случае вы можете использовать следующее.

Содержимое C:\temp\Data.txt:

окружающая среда = Q GRZ

target_site = FSHHPU

код:

$file_content = Get-Content "C:\temp\Data.txt"
$file_content = $file_content -join [Environment]::NewLine

$configuration = ConvertFrom-StringData($file_content)
$environment = $configuration.'environment'
$target_site = $configuration.'target_site'

Ответ 3

Я не знаю, есть ли какой-нибудь интегрированный способ Powershell для этого, но я могу сделать это с помощью регулярного выражения:

$target = "app.name=Test App
app.version=1.2
..."

$property = "app.name"
$pattern = "(?-s)(?<=$($property)=).+"

$value = $target | sls $pattern | %{$_.Matches} | %{$_.Value}

Write-Host $value

Должен напечатать "Test App"