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

时间:2019-04-15 22:01:31

标签: powershell batch-file replace

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

示例:

“酷”更改为“有趣”

'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”

1 个答案:

答案 0 :(得分:0)

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

(gc index.html) -replace 'desktop|en','es' | Out-File -encoding UTF8 index.html