从cmd调用具有多个参数的powershell脚本

从cmd调用具有多个参数的powershell脚本,powershell,Powershell,我有一个简单的powershell脚本。它需要两个参数。这两种方法都是采用字符串参数的方法(Get ResourcePool)的一部分 如果我在Powershell脚本中调用函数定义,如下所示: functName CI *FMS C:\Script.ps1 A "*s" 那很好 Powershell中的函数调用是(与此类似,因为此脚本将从外部调用): 我尝试从Powershell editor调用此功能,在那里我安装了所有需要安装的管理单元,如下所示: functName CI *FMS

我有一个简单的powershell脚本。它需要两个参数。这两种方法都是采用字符串参数的方法(Get ResourcePool)的一部分

如果我在Powershell脚本中调用函数定义,如下所示:

functName CI *FMS
C:\Script.ps1 A "*s" 
那很好

Powershell中的函数调用是(与此类似,因为此脚本将从外部调用):

我尝试从Powershell editor调用此功能,在那里我安装了所有需要安装的管理单元,如下所示:

functName CI *FMS
C:\Script.ps1 A "*s" 
其中scrpt是我的.ps1文件的名称。有一个功能。但是,这会失败,并出现参数为null或空的错误

你知道为什么吗

编辑:

函数签名为:

函数retertosnapshot($otherarg,$wildcard)

我在这里使用$wildcard: $SearchString=[System.String]::Concat(“*”, $vm(通配符) Name$SearchString(Name是在powercli中获取vm的参数)。

此调用样式:

FuncName $($args[0], $args[1])
只会导致一个参数传递给FuncName—一个包含两个元素的数组。您可能想要:

FuncName $args[0] $args[1]
通常,使用PowerShell,您可以使用空格分隔的参数调用cmdlet、函数和别名,而不使用参数。调用.NET方法是此规则的一个例外,您必须使用paren和逗号分隔参数,例如:

[string]::Concat('ab','c')
这种通话方式:

FuncName $($args[0], $args[1])
只会导致一个参数传递给FuncName—一个包含两个元素的数组。您可能想要:

FuncName $args[0] $args[1]
通常,使用PowerShell,您可以使用空格分隔的参数调用cmdlet、函数和别名,而不使用参数。调用.NET方法是此规则的一个例外,您必须使用paren和逗号分隔参数,例如:

[string]::Concat('ab','c')