Как заменить ИЛИ b с помощью команды powershell в командном файле? - PullRequest
0 голосов
/ 16 апреля 2019

Я хочу заменить строку в файле другой строкой. Однако строка для поиска может иметь одно из двух значений.

Пример:

«круто» изменено на «весело»

«uncool» изменено на «fun»

Это работает, если я только пытаюсь изменить одно значение, но когда я пытаюсь изменить, если его одно ИЛИ другое, происходит сбой. Я ставлю паузу после, но она все еще закрывается, чтобы быстро увидеть красную ошибку

Я пытался изменить код, чтобы использовать ForEach-Object и множественную замену, в соответствии с Как заменить несколько строк с помощью 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»

1 Ответ

0 голосов
/ 16 апреля 2019

Вы можете использовать переменное регулярное выражение и исключить foreach:

(gc index.html) -replace 'desktop|en','es' | Out-File -encoding UTF8 index.html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...