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”中

A 证明这个理论运行以下给了我有趣的结果:

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

通过用单引号括起来,您是说在此字符串中传递文字字符。

执行密码的“正确”方法是使用 ConvertTo-SecureString cmdlt。

于 2013-06-19T16:01:29.433 回答