2013-10-07 47 views
0

我們目前有一個腳本可以生成隨機密碼,我們利用另一個函數從這個密碼列表讀取各種任務。在使用這些密碼時,它們被傳遞給一個變量,我們稱之爲$password。所以,

$password = FindPassword "blah"

如果我要打印$password那麼它將返回說,[email protected][email protected]&$^

與此問題是,當我使用$password它缺少的一個文件中的替換詞$所以,[email protected][email protected]&$^

這裏是我使用的替換代碼,

(Get-Content $Some_File) | 
    Foreach-Object {$_ -replace "PASSWORD","${Password}"} | Set-Content $Some_File 

任何人都知道一種方式來顯示連續兩個$$?我一直在使用這樣的事情,以確保特殊字符得到適當治療嘗試,但不能得到$工作:

$password = $password.Replace("`^","`^") 
$password = $password.Replace("`@","`@") 
$password = $password.Replace("`&","`&") 
$password = $password.Replace("`!","`!") 
$password = $password.Replace("\`$","\`$") 

此外,

$password = $password.Replace("`$","``$") 

的工作,但如果密碼是不同的下一次,這只是這個特殊例子所特有的。

回答

1

如果用.replace()方法代替-replace運營商,它的伎倆:

(Get-Content $Some_File) | 
    Foreach-Object { $_.toString().Replace("PASSWORD", $password.ToString()) } | Set-Content $Some_File 
+0

很抱歉的冗餘使用這個詞的「替換」。 :) – Jim

+0

完美的作品 – JMeterX