数组的输出值到文件中的字符串

时间:2015-05-20 12:46:18

标签: arrays xml powershell

我正在尝试使用数组值更新XML文件中的URL。

我正在将计算机名输出到文本文件中。我需要读取该文本文件并将内容输入到XML文件中的字符串中。

代码:

$name = Get-Content 'C:\temp\hostname.txt'
(Get-Content "E:\Source\Igloo Upgrade to v5.0\Igloo Enterprise Distribution 5.0\Setup\Igloo Enterprise Administrator.SetParameters.xml") |
  ForEach-Object {$_ -replace '//twscheduler/','//$name/'} | 
  Set-Content "E:\Source\Igloo Upgrade to v5.0\Igloo Enterprise Distribution 5.0\Setup\Igloo Enterprise Administrator.SetParameters.xml"

我遇到的问题是它将字$name输入字符串而不是值。

我试过了:

$name = Get-Content 'C:\temp\hostname.txt'
(Get-Content "E:\Source\Igloo Upgrade to v5.0\Igloo Enterprise Distribution 5.0\Setup\Igloo Enterprise Administrator.SetParameters.xml") |
  ForEach-Object {$_ -replace '//twscheduler/','//'$name'/'} | 
  Set-Content "E:\Source\Igloo Upgrade to v5.0\Igloo Enterprise Distribution 5.0\Setup\Igloo Enterprise Administrator.SetParameters.xml"

此错误带有“意外令牌”。

我也试过了:

$name = Get-Content 'C:\temp\hostname.txt'
(Get-Content "E:\Source\Igloo Upgrade to v5.0\Igloo Enterprise Distribution 5.0\Setup\Igloo Enterprise Administrator.SetParameters.xml") |
  ForEach-Object {$_ -replace '//twscheduler/',//$name/} | 
  Set-Content "E:\Source\Igloo Upgrade to v5.0\Igloo Enterprise Distribution 5.0\Setup\Igloo Enterprise Administrator.SetParameters.xml"

这个错误“在','之后缺少表达式。”。

我很确定我没有正确地转义数组,因此它知道它的数组而不只是一个值。

1 个答案:

答案 0 :(得分:2)

   $_ -replace '//twscheduler/','//$name/'

PSH变量不会在单引号字符串中扩展。

请尝试使用双引号字符串:

$_ -replace '//twscheduler/',"//$name/"