如何在批处理文件中使用powershell命令替换OR b?

问题描述 投票:0回答:1

我想用另一个字符串替换文件中的字符串。但是,要查找的字符串可以是两个值之一。

例:

'酷'改为'有趣'

'uncool'改为'有趣'

如果我只尝试更改一个值,它会工作,但当我尝试更改它的一个或另一个时,它会崩溃。我暂停了一下,但它仍然快速关闭,以便看到红色错误

我尝试改变代码以使用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字符:35”

但是肯定有一个右大括号,如上面显示的代码所示。

预期结果:更新index.html文件。它有“桌面”或“en”的任何地方,将值更改为“es”

powershell batch-file replace
1个回答
0
投票

您可以使用交替的正则表达式并消除foreach:

(gc index.html) -replace 'desktop|en','es' | Out-File -encoding UTF8 index.html
© www.soinside.com 2019 - 2024. All rights reserved.