Powershell 使用字符串替换插入字符串'$_';在地狱里?
我在powershell中更换字符串时遇到问题。请考虑以下表达式:Powershell 使用字符串替换插入字符串'$_';在地狱里?,powershell,Powershell,我在powershell中更换字符串时遇到问题。请考虑以下表达式: "replaceTarget: %rep" -replace '%rep','$_' 我希望这个表达式的结果是: replaceTarget: $_ 但事实并非如此 replaceTarget: replaceTarget: $rep 我假设这是因为替换字符串“$\u”在replace函数中有其他含义 如何转义输入字符串,以便传入$\ucode>而不进行求值?您可以像这样使用.net replace函数: 'replace
"replaceTarget: %rep" -replace '%rep','$_'
我希望这个表达式的结果是:
replaceTarget: $_
但事实并非如此
replaceTarget: replaceTarget: $rep
我假设这是因为替换字符串“$\u”在replace
函数中有其他含义
如何转义输入字符串,以便传入
$\ucode>而不进行求值?您可以像这样使用.net replace函数:
'replaceTarget:$rep.replace(“`rep”,“$”)
您可以像这样使用.net replace函数:
'replaceTarget:$rep'.replace(“$rep”,“$”)
尝试以下方法:
'replaceTarget: %rep' -replace '%rep','$$_'
试试这个:
'replaceTarget: %rep' -replace '%rep','$$_'
谢谢,这似乎有效。我尝试了[Regex]::replace
,但也遇到了同样的问题。谢谢,这似乎有效。我尝试了[Regex]::replace
,但也遇到了同样的问题。第一个字符串被扩展为replaceTarget:[在$rep中的任何内容]
-但是您试图替换文本字符串$rep
?@MathiasR.Jessen我编辑了这个问题以澄清其意图。第一个字符串被扩展为replaceTarget:[在$rep中的任何内容]
-但是您试图替换文本字符串$rep
?@MathiasR.Jessen我编辑了这个问题以澄清其意图。很好。$还充当一个espace字符??以前从未使用过!非常奇怪的行为:PS>$test
->变量未定义。PS>“$$test”
->$testtest@Kayasax在上一种情况下,$$将作为您输入的最后一个命令展开。请尝试>cls>“$$magic”。在那里,-replace
将双$$用作转义,但实际上只是扩展系统的一个规则,我找不到原始文档,但如果找到,我将在这里给出反馈!我仍然不理解这种行为,从关于自动变量:“$$包含会话收到的最后一行中的最后一个令牌。”.cls>“$$magic”据我所知,应为null或包含clsmagic,而不是magicmagic…@Kayasax,如果我在powershell提示符下输入数字cls
,则“$$magic”
它返回clsmagic
。如果在-替换'xx','$$'之后使用,则不同,其中任何xx
被替换为一个美元符号。您现在遵循了吗?很好。$还充当espace字符??以前从未使用过!非常奇怪的行为:PS>$test
->变量未定义。PS>“$$test”
->$testtest@Kayasax在上一种情况下,$$将作为您输入的最后一个命令展开。请尝试>cls>“$$magic”。在那里,-replace
将双$$用作转义,但实际上只是扩展系统的一个规则,我找不到原始文档,但如果找到,我将在这里给出反馈!我仍然不理解这种行为,从关于自动变量:“$$包含会话收到的最后一行中的最后一个令牌。”.cls>“$$magic”据我所知,应为null或包含clsmagic,而不是magicmagic…@Kayasax如果我在powershell提示符下输入数字cls
,则“$$magic”
返回clsmagic
。如果在后使用不同的字符替换为“xx”、“$$”
,其中任何xx
被替换为一个美元符号。现在是否遵循?