转义PowerShell中的单引号登录

转义PowerShell中的单引号登录,powershell,Powershell,我的代码中有一个替换语句,其中Band's被Cig's替换。然而,当我把单引号,它采取了第一句话。。。示例“波段” 我试图使用双引号,但它不起作用。你知道如何避开单引号符号吗 -replace 'Band's', 'Cig's' 请参阅和来自内置帮助(正如as Nacimota所指出的) 要在一个带引号的字符串中包含一个',只需将其加倍为'。(单引号文字不支持任何其他转义字符。) 或者,简单地切换到双引号。(希望使用插值或转义字符时,需要双引号文字。) (不要忘记-replace使用正则表达式

我的代码中有一个替换语句,其中Band's被Cig's替换。然而,当我把单引号,它采取了第一句话。。。示例“波段”

我试图使用双引号,但它不起作用。你知道如何避开单引号符号吗

-replace 'Band's', 'Cig's'
请参阅和来自内置帮助(正如as Nacimota所指出的)

要在一个带引号的字符串中包含一个
'
,只需将其加倍为
'
。(单引号文字不支持任何其他转义字符。)

或者,简单地切换到双引号。(希望使用插值或转义字符时,需要双引号文字。)


(不要忘记
-replace
使用正则表达式)

用两个单引号转义一个单引号:

"Band's Toothpaste" -replace 'Band''s', 'Cig''s'
另外,这是一个复制品

对于普通情况,可以使用嵌入的转义字符。对于更复杂的情况,可以在此处使用字符串

$Find = [regex]::escape(@'
Band's
'@)

$Replace = @'
Cig's
'@

"Band's Toothpaste" -replace $Find,$Replace
然后将要搜索和替换的文本放入here字符串中

$Find = [regex]::escape(@'
Band's
'@)

$Replace = @'
Cig's
'@

"Band's Toothpaste" -replace $Find,$Replace
正常的引号规则不适用于here字符串@'-'@分隔符,因此您可以将任何类型的引号放在任何需要的地方,而不需要任何转义字符


$Find上的[regex]::excape()将负责对搜索模式中的任何regex保留字符进行反斜杠转义。

不要忘记内置的帮助系统:
$Find = [regex]::escape(@'
Band's
'@)

$Replace = @'
Cig's
'@

"Band's Toothpaste" -replace $Find,$Replace