我试图创建一个ps脚本,它附加字符串;历史记录直接;样式表但当前脚本正在创建一个额外的行,当我希望它直接追加它。
这就是假设的样子
;stylesheets;history
但这就是发生的事情
;stylesheets
;history
有人可以解释原因吗?
(Get-Content K:\Temp\test.properties) |
Foreach-Object {
$_
if ($_ -match ";stylesheets")
{ ";history"
}
} | Set-Content K:\Temp\test.properties
答案 0 :(得分:3)
你得到两行,因为你匹配时会返回两个对象。 @($_,";history")
并且每个对象都写成一行。你可以在匹配时将它们组合成一个字符串。
(Get-Content K:\Temp\test.properties) |
Foreach-Object {
if ($_ -match ";stylesheets") {
"$_;history"
} else {
$_
}
} | Set-Content K:\Temp\test.properties
答案 1 :(得分:3)
替代解决方案:
(Get-Content K:\Temp\test.properties).Replace(';stylesheets',';stylesheets;history') |
Set-Content K:\Temp\test.properties