как заменить строку со знаком доллара в PowerShell - PullRequest
5 голосов
/ 02 февраля 2012

В Powershell с учетом следующей строки

$string = "this is a sample of 'my' text $PSP.what do you think"

как использовать функцию -replace для преобразования строки в

this is a sample of 'my' text Hello.what do you think

Мне, очевидно, нужно как-то экранировать строку, также$ PSP не является объявленной переменной в моем скрипте

Мне нужно изменить все упоминания $ PSP для какой-то другой строки

Ответы [ 3 ]

9 голосов
/ 02 февраля 2012

Используйте символ обратной черты (над клавишей табуляции):

$string = "this is a sample of 'my' text `$PSP.what do you think"

Чтобы заменить знак доллара с помощью оператора -replace, добавьте обратную косую черту:

"this is a sample of 'my' text `$PSP.what do you think" -replace '\$PSP', 'hello'

Или используйте метод string.replace:

$string = "this is a sample of 'my' text `$PSP.what do you think"
$string.Replace('$PSP','Hello)'

это образец "моего" текста. Здравствуйте. Что вы думаете

0 голосов
/ 02 февраля 2012

Если вы не измените свою исходную строку (например, экранируя $), это (на самом деле) невозможно.Ваш $string на самом деле не содержит $PSP, поскольку в операторе присваивания он заменяется ничем.

$string = "this is a sample of 'my' text $PSP.what do you think"
$string -eq "this is a sample of 'my' text .what do you think"

оценивается как:

True

0 голосов
/ 02 февраля 2012

Вы должны попробовать

$ string = $ string.Replace ("\ $ PSP", "Hello")

или

$ string = $ string.Replace ("\ $ PSP", $ the_new_value)

или для более общего использования используйте Regex

$ string = [regex]:: Заменить ($ string, "\ $ \ w +", "Hello")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...