У меня есть строка в форме -content-
, и я хотел бы заменить ее &content&
. Как это сделать с заменой в PowerShell?
Заменить подстроку в PowerShell
Ответ 1
Встроенный оператор -replace
позволяет вам использовать регулярное выражение для этого, например:
C:\PS> '-content-' -replace '-([^-]+)-', '&$1&'
&content&
Обратите внимание, что использование одиночных кавычек имеет важное значение для строки замены, поэтому PowerShell не интерпретирует группу захвата $ 1.
Ответ 2
Строки PowerShell - это строки.NET, поэтому вы можете:
PS> $x = '-foo-'
PS> $x.Replace('-', '&')
&foo&
...или:
PS> $x = '-foo-'
PS> $x.Replace('-foo-', '&bar&')
&bar&
Очевидно, что если вы хотите сохранить результат, назначьте его другой переменной:
PS> $y = $x.Replace($search, $replace)
Ответ 3
Как я могу заменить \\server\Share $ на D:? Я попробовал ниже, но ничего не меняется. может кто-нибудь сказать мне, что я делаю не так.
$Results | ForEach-Object {
$_.FullName = $_.FullName -replace "$userpath", 'D:' }