为什么要这样做写主机函数外部的工作方式与函数内部的工作方式不同吗?
似乎参数变量以某种方式与我声明的内容发生了变化......
function a([string]$svr, [string]$usr) {
$x = "$svr\$usr"
Write-Host $x
}
$svr = 'abc'
$usr = 'def'
Write-Host "$svr\$usr" # abc\def
a($svr, $usr) # abc def
不要在 PowerShell 中使用括号和逗号调用函数或 cmdlet(仅在方法调用中执行此操作)!
你打电话时a($svr, $usr)
您传递一个数组,其中两个值作为第一个参数的单个值。这相当于这样称呼它a -svr $svr,$usr
这意味着$usr
根本没有指定参数。所以现在$x
等于数组的字符串表示形式(带空格的连接),后跟一个反斜杠,后面什么都没有。
相反,这样称呼它:
a $svr $usr
a -svr $svr -usr $usr
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)