Powershell - Найти и заменить данные конфигурации XML значениями реестра - PullRequest
2 голосов
/ 19 января 2012

В настоящее время я пытаюсь получить доступ к реестру, получить все вложенные ключи с соответствующими значениями и затем заменить эти значения конфигурацией XML.

Например:

В документе XMLсохраняется следующее значение:

<Name = "Test" Value = "\\somelocation\TOKEN\Application" />
<Name = "Test1" Value = "\\somelocation\TOKEN\Deployment" />

В ключе реестра содержится значение токена:

TOKEN = LifeCycleManagement

Поэтому я хочу, чтобы powershell заменял "" somelocation \ TOKEN *"with" \ somelocation \ LifeCycleManagement * "

Есть идеи, пожалуйста?

В настоящее время я пытаюсь использовать следующий код:

$lineElement = @()

$regItems = Get-ItemProperty registrylocation
Get-ItemProperty registrylocation > c:\DEV\output.txt
$contents = Get-Content c:\DEV\output.txt

foreach ($line in $contents)
{
    $line = $line -split(":")
    $lineElement += $line[0]
}

foreach ($element in $lineElement)
{
    $element
    $regItems.$element
}

Элемент $ regItems. $ не являетсявозвращая любые результаты.

1 Ответ

2 голосов
/ 19 января 2012

В вашем коде обычно $line изначально будет выглядеть следующим образом:

Token........: LifeCycleManagement. Когда вы разделите свою линию на : и возьмете первую часть, вы получите Token......... (. - пробелы) Очевидно, что $regItems.Token......... не то, что вы после. Вы должны избавиться от пробелов в конце вашего $line. Это можно сделать с помощью Trim(). Пример кода ниже исправит вашу проблему.

$lineElement = @()

$regItems = Get-ItemProperty registrylocation
Get-ItemProperty registrylocation > c:\DEV\output.txt
$contents = Get-Content c:\DEV\output.txt

foreach ($line in $contents)
{
    $line = $line -split(":")
    $lineElement += ($line[0]).Trim()
}

foreach ($element in $lineElement)
{
    $element
    $regItems.$element
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...