現在、ランダムなパスワードを生成するスクリプトがあり、別の関数を使用して、さまざまなタスクのためにこのパスワード リストから読み取ります。これらのパスワードを使用している間、変数 let's call に渡されます$password
。そう、
$password = FindPassword "blah"
印刷する$password
と、次のように返されます。Q@48$$!y@&$^
これに関する問題は、それを使用してファイル内の単語を置き換えると、その単語の$password
いずれかが欠落していることです$
。Q@48$!y@&$^
置換に使用しているコードは次のとおりです。
(Get-Content $Some_File) |
Foreach-Object {$_ -replace "PASSWORD","${Password}"} | Set-Content $Some_File
2 つの $$ を連続して表示する方法を知っている人はいますか? 特殊文字が適切に処理されるように、次のようなものを使用しようとしましたが、 $ を機能させることができません:
$password = $password.Replace("`^","`^")
$password = $password.Replace("`@","`@")
$password = $password.Replace("`&","`&")
$password = $password.Replace("`!","`!")
$password = $password.Replace("\`$","\`$")
また、
$password = $password.Replace("`$","``$")
動作しますが、次回パスワードが異なる場合、それはこの特定の例にのみ固有のものです。