如何在PowerShell脚本内部调用一个接受命名参数的PowerShell脚本?
foo.ps1:
foo.ps1:
param(
[Parameter(Mandatory=$true)][String]$a='',
[Parameter(Mandatory=$true)][ValidateSet(0,1)][int]$b,
[Parameter(Mandatory=$false)][String]$c=''
)
#stuff done with params here
bar.ps1
#some processing
$ScriptPath = Split-Path $MyInvocation.InvocationName
$args = "-a 'arg1' -b 2"
$cmd = "$ScriptPath\foo.ps1"
Invoke-Expression $cmd $args
错误:
Invoke-Expression : A positional parameter cannot be found that accepts
argument '-a MSFT_VirtualDisk (ObjectId =
"{1}\\YELLOWSERVER8\root/Microsoft/Windo...).FriendlyName -b 2'
这是我最新的尝试 - 我尝试了多种方法,通过谷歌搜索,但似乎都无法解决问题。
如果我在shell终端中使用./foo.ps1 -a 'arg1' -b 2
运行foo.ps1,它按预期工作。