我正在尝试使用数组值更新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"
这个错误“在','之后缺少表达式。”。
我很确定我没有正确地转义数组,因此它知道它的数组而不只是一个值。
答案 0 :(得分:2)
$_ -replace '//twscheduler/','//$name/'
PSH变量不会在单引号字符串中扩展。
请尝试使用双引号字符串:
$_ -replace '//twscheduler/',"//$name/"