[英]PowerShell Invoke-Expression command parameter contains comma
密码包含PowerShell特殊字符时,我该怎么办?
Invoke-Expression -Command "net use x: $Path /USER:domain1\user1 7Ui4RT,@T /persistent:no"
这在语法上失败 - 因为PowerShell将7Ui4RT,@T
解释为数组:
Invoke-Expression -Command "net use x: $Path /USER:domain1\user1 7Ui4RT`,@T /persistent:no"
这在语法上失败 - 显然是因为PowerShell无法解释7Ui4RT``,@T
Invoke-Expression -Command "net use x: $Path /USER:domain1\user1 "7Ui4RT,@T" /persistent:no"
这失败是因为PowerShell将7Ui4RT,@T
解释为对象,而不是字符串(error =“找不到接受参数'System.Object []'的位置参数。”)。
我该怎么办?
为什么使用Invoke-Expression
来评估命令? 如果需要动态构建一组参数,可以将它们放在一个数组中:
$command = 'net'
$commandArgs = @('use','x:',$Path,'/USER:domain1\usr1','7Ui4RT,@T','/persistent:no')
& $command $commandArgs
如果您提前知道该命令,可以直接调用它: net $commandArgs
将单引号放在7Ui4RT,@T
,即
'7Ui4RT,@T'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.