【发布时间】:2013-10-24 18:33:12
【问题描述】:
编辑:我已将此处的代码更改为一个简单的测试用例,而不是出现此问题的完整实现。
我正在尝试从另一个调用一个 Powershell 脚本,但事情并没有像我预期的那样进行。据我了解,“&”运算符应该将数组扩展为不同的参数。这不会发生在我身上。
caller.ps1
$scriptfile = ".\callee.ps1"
$scriptargs = @(
"a",
"b",
"c"
)
& $scriptfile $scriptargs
callee.ps1
Param (
[string]$one,
[string]$two,
[string]$three
)
"Parameter one: $one"
"Parameter two: $two"
"Parameter three: $three"
运行 .\caller.ps1 会产生以下输出:
Parameter one: a b c
Parameter two:
Parameter three:
我认为我遇到的问题是$scriptargs 数组没有扩展,而是作为参数传递。我正在使用 PowerShell 2。
如何让 caller.ps1 使用一组参数运行 callee.ps1?
【问题讨论】:
-
我还应该在这里注意,我使用了 PowerShell 社区扩展中的 EchoArgs 实用程序,并且参数的格式似乎正确。
-
您将部署参数定义为一个数组,您是否尝试将字符串作为表达式调用
-
我正在尝试将参数构建为数组,如 this blog post 标题下的“但是如果我想构建参数以在我的脚本中传递呢?”
-
看起来您的问题实际上与 MSDeploy 几乎没有关系,更多的是与动态调用存储在字符串中的 PowerShell 命令有关。我建议编辑你的标签,甚至可能修剪你的代码,使其更短,更切中要害。
-
您可能会在此处查看可用于配置参数的其他选项,但请注意您使用的 PowerShell 版本:technet.microsoft.com/en-us/library/hh847743.aspx
标签: powershell