我想用另一个字符串替换文件中的字符串。但是,要查找的字符串可能是两个值之一。
示例:
“酷”更改为“有趣”
'uncool'更改为'fun'
如果我仅尝试更改一个值,则它起作用,但是当我尝试更改一个或另一个值时,它崩溃。我停了一会儿,但仍然很快关闭,以看到红色错误
我尝试将代码更改为使用ForEach-Object并按照How to replace multiple strings using PowerShell进行多次替换,但出错了
我的代码:
powershell -Command "(gc index.html) | ForEach-Object {
$_.replace('desktop', 'es').replace('en', 'es') } | Out-File -encoding UTF8 index.html"
实际结果:错误输出:“在语句块中缺少关闭'}'。在第1行:1个字符:35”
但是肯定有一个括号,如上面显示的代码所示。
预期结果:更新index.html文件。在任何具有“桌面”或“ en”的位置,请将值更改为“ es”
答案 0 :(得分:0)
您可以使用交替的正则表达式并消除foreach:
(gc index.html) -replace 'desktop|en','es' | Out-File -encoding UTF8 index.html