所以每个文件都有一行
Publisher =“GUID here”
我想用简单的文字“TEXTHERE”(带引号)替换所有的guid (Powershell的)
这是我简化的内容;
`
enter code here`$list = Get-ChildItem -Path:'C:\AppOutput\*allfiles.xml*' -Recurse
$replacestring = 'APPXSIGNCERTIFICATE'
$appxmltest = 'C:\AppOutput\app.xml'
ForEach ($file in $list)
{
(Get-Content $file) -replace "Publisher=""`*", 'Publisher="TEXTHERE"' | Set-Content c:\test2.xml
}
它仅取代发布者=“with Publisher =”TEXTHERE“{GUID}”
有什么建议吗?
我试图找到一种方法来告诉它Publisher =“启动以及介于那个和下一个之间的所有内容”
答案 0 :(得分:5)
-replace
使用正则表达式来匹配它应该替换的文本,所以尝试这样的事情:
-replace '(?<=Publisher=").*?(?=")', 'TEXTHERE'
答案 1 :(得分:2)
看起来你试图为你的匹配参数使用通配符语法。 -replace期待正则表达式。
试试这个:
(Get-Content $file) -replace 'Publisher=".*?"', 'Publisher="TEXTHERE"' | Set-Content c:\test2.xml
请参阅:
get-help about_regular_expressions