私のスクリプトが次のようになっているとしましょう:
param([string]$password)
Write-Host $password
この方法で起動すると、これが返されます。
.\myDollarParam.ps1 -Password Pa$sword
Pa
次の出力が必要です。
Pa$sword
引数に ` または \ を使用する以外にそれを行う方法はありますか?
ありがとう。
私のスクリプトが次のようになっているとしましょう:
param([string]$password)
Write-Host $password
この方法で起動すると、これが返されます。
.\myDollarParam.ps1 -Password Pa$sword
Pa
次の出力が必要です。
Pa$sword
引数に ` または \ を使用する以外にそれを行う方法はありますか?
ありがとう。
簡単な方法は、単一引用符で囲むことです。例:
.\myDollarParam.ps1 -Password 'Pa$sword'
それ以外の場合、PowerShellは「$」を変数の開始として解釈するため、基本的に例で言っていることは、変数に値「Pa」を割り当ててから、変数「$sword」に格納された値を割り当てることです
以下を実行してこの理論を証明すると、興味深い結果が得られます。
$sword = "Stuff"
.\myDollarParam.ps1 -Password Pa$sword
PaStuff
一重引用符で囲むことにより、この文字列にリテラル文字を渡すことを意味します。
パスワードを設定する「適切な」方法は、ConvertTo-SecureString コマンドレットを使用することです。