我们假设我的脚本如下:
param([string]$password)
Write-Host $password
如果我以这种方式启动它将会返回:
.\myDollarParam.ps1 -Password Pa$sword
Pa
我想要以下输出:
Pa$sword
有没有办法在参数中使用`或\来做到这一点?
感谢。
答案 0 :(得分:10)
简单的方法是将其用单引号括起来。例如:
.\myDollarParam.ps1 -Password 'Pa$sword'
否则PowerShell会将“$”解释为变量的开头,因此您在示例中基本上说的是将变量赋值为“Pa”,然后将值存储在变量“$ sword”中
A证明这个理论运行以下给我带来了有趣的结果:
$sword = "Stuff"
.\myDollarParam.ps1 -Password Pa$sword
PaStuff
用单引号括起来,就是说要传递这个字符串中的文字字符。
执行密码的“正确”方法是使用ConvertTo-SecureString cmdlt。