2013-02-21 41 views
0

是的,這是另一個PowerShell的回報問題...PowerShell的返回與string.replace值

$str = 'My {token} string' 

$newStr = $str.Replace('{token}', 'value') 
$newStr 
My value string 

function strReplace ($str, $rval) { $str.Replace('{token}', $rval) } 
$newStr = strReplace($str, 'value') 
$newStr 
My string 
value 

即使返回與string.replace一個字符串,對象[]在返回管道出現。爲什麼??有沒有辦法獲得明顯的回報價值?

+0

當我運行這段代碼,它獲得與以下行錯誤: $中newstr = strReplace($海峽,「值') 但我用它替換它時: $ newStr = strReplace $ str'value' 它按預期工作。我使用的是.net 4.0的Powershell 2.0 – 2013-02-21 20:05:42

+0

也許這是對ps3的改變? – bob 2013-02-21 20:35:51

回答

3

這是因爲您在函數中傳入一個數組作爲$str的參數。你需要調用這樣的PowerShell函數(沒有支架,沒有逗號分隔參數):

$newStr = strReplace $str 'value' 
+0

謝謝,但即使刪除括號後,我仍然得到相同的對象[]。我在Win8上使用ps3。 – bob 2013-02-21 20:27:44

+0

您是否記得放棄逗號?空格用於分隔參數 – 2013-02-21 20:39:17

+0

呃 - 你是對的。有一段時間沒有用過ps。謝謝! – bob 2013-02-21 20:48:45