4

私のスクリプトが次のようになっているとしましょう:

param([string]$password)
Write-Host $password

この方法で起動すると、これが返されます。

.\myDollarParam.ps1 -Password Pa$sword
 Pa

次の出力が必要です。

 Pa$sword

引数に ` または \ を使用する以外にそれを行う方法はありますか?

ありがとう。

4

1 に答える 1

12

簡単な方法は、単一引用符で囲むことです。例:

.\myDollarParam.ps1 -Password 'Pa$sword'

それ以外の場合、PowerShellは「$」を変数の開始として解釈するため、基本的に例で言っていることは、変数に値「Pa」を割り当ててから、変数「$sword」に格納された値を割り当てることです

以下を実行してこの理論を証明すると、興味深い結果が得られます。

$sword = "Stuff"
.\myDollarParam.ps1 -Password Pa$sword
PaStuff

一重引用符で囲むことにより、この文字列にリテラル文字を渡すことを意味します。

パスワードを設定する「適切な」方法は、ConvertTo-SecureString コマンドレットを使用することです。

于 2013-06-19T16:01:29.433 に答える