ranio Ответов: 0

Как избежать того, чтобы значение имени ключа не обновлялось при выполнении поиска и замены в powershell?


Я хочу избежать того, чтобы значение имени ключа не обновлялось при выполнении поиска и замены в powershell. Я могу найти и заменить путь к хранилищу файлов в конфигурационном файле. Но я не хочу заменять путь к папке для ключа в конфигурационном файле
Здесь я заменяю путь к папке на диск C: на сетевой путь. Но я не хочу заменять путь к папке на ключ
ChartImageHandler in config file.
<pre><add key="ReconciliationFilePath" value="\C:PAYMENT_HUB\Filestore\FTS_FileStore\ISGREPORTS\" />
   
    <add key="ChartImageHandler" value="storage=file;timeout=20;dir=\C:PAYMENT_HUB\Filestore\FTS_FileStore\TempImageFiles\;" />


Что я уже пробовал:

Путь конфигурации, как показано ниже:
<pre><add key="ReconciliationFilePath" value="\C:PAYMENT_HUB\Filestore\FTS_FileStore\ISGREPORTS\" />
   
 
    <add key="ChartImageHandler" value="storage=file;timeout=20;dir=\C:PAYMENT_HUB\Filestore\FTS_FileStore\TempImageFiles\;" />


Сценарий выглядит следующим образом:
#UAEWPS Application if ($Line -notmatch '\#')
$Application_Path="C:\PAYMENT_HUB\UAEFTS\Web.Config"
$Application_Path

foreach ($Line in $ConfigFile) {
    if ($Line -notmatch 'ChartImageHandler') {
    (Get-Content $Application_Path) | 
     Foreach-Object {$_.replace("C:\", "\\10.40.0.137\")} | 
     Set-Content $Application_Path	
}
}

Tomas Takac

Если это XML-файлы, вы можете прочитать их как таковые и выполнять замену только в значениях, а не в ключах.

Sinisa Hajnal

Кроме того, вы уже знаете, какую строку вы заменяете, не делайте foreach, просто замените эту единственную строку

0 Ответов