我有字符串替換在PowerShell中的麻煩。請考慮下面的表達式:
"replaceTarget: %rep" -replace '%rep','$_'
我希望這個表達式的結果是:
replaceTarget: $_
,但相反,它是
replaceTarget: replaceTarget: $rep
我想這是因爲替換字符串'$_'
已在replace
功能的一些其他的意思。
我怎樣才能逃避輸入字符串,使$_
可以在不被評估的傳遞嗎?
我有字符串替換在PowerShell中的麻煩。請考慮下面的表達式:
"replaceTarget: %rep" -replace '%rep','$_'
我希望這個表達式的結果是:
replaceTarget: $_
,但相反,它是
replaceTarget: replaceTarget: $rep
我想這是因爲替換字符串'$_'
已在replace
功能的一些其他的意思。
我怎樣才能逃避輸入字符串,使$_
可以在不被評估的傳遞嗎?
你coud使用.NET替換功能是這樣的: 'replaceTarget: $rep'.replace("`$rep",'$_')
謝謝,這似乎工作。我試過'[Regex] :: replace',並且有同樣的問題。 – Oliver
我沒有找到合適的辦法做到這一點使用PowerShell的'-replace'運營商... –
嘗試這樣的:
'replaceTarget: %rep' -replace '%rep','$$_'
尼斯。$也作爲一個協商角色?永遠不要這樣做! –
真是奇怪的行爲:'PS> $'測試 - > VariableIsUndefined。 'PS>「$$測試」' - > $ TESTTEST –
@Kayasax在最後一種情況下$$擴展,當你進入最後一個命令。嘗試> CLS>「$$魔法」。在那裏「替換」雙$$作爲逃跑,但實際上只是一個擴大系統的規則,我找不到原始文件,但是如果我發現我會在這裏給出反饋! –
的第一個字符串被擴大到'replaceTarget:無論是$代表裏面]' - 但你試圖替換文字字符串'$ rep'? –
@ MathiasR.Jessen我已經編輯了這個問題來澄清意圖。 – Oliver