1
我有以下(不工作)poweshell脚本:如何在Powershell中将参数传递给Invoke-Expression?
$scriptPath = ((new-object net.webclient).DownloadString('https://gist.githubus
ercontent.com/AndrewSav/c4fb71ae1b379901ad90/raw/23f2d8d5fb8c9c50342ac431cc0360ce44465308/SO33205298')); $args = "`"aaa
bbb`""; iex $scriptPath $args
所以我:
- 下载脚本来执行。
- 设置我的参数列表发送到脚本
- 执行脚本(对我来说,这是在现在的cli)。
但它的示数:
Invoke-Expression : A positional parameter cannot be found that accepts argument '"aaa bbb"'.
At line:1 char:209
+ ... 44465308/SO33205298')); $args = "`"aaa bbb`""; iex $scriptPath $args
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Invoke-Expression], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeExpressionCommand
谁能帮我找出如何在参数传递给该脚本传递?
注意:此问题引用/产生于this other SO question。
>“在调用它之前,您必须从源创建一个ScriptBlock。” - 事实上并非如此。您可以使用IEX,II和&call运算符来调用Posh代码的字符串表示形式。 – ChadT
@DaRKoN_and ..我可以传入命名参数吗?例如。 '-version 1.2.3.4 -source pewPew -foo whatever' ?? < - 并且这些参数与脚本中列出的参数的顺序不同 –
@DaRKoN_您可以调用脚本,但$ Scriptpath不是脚本路径,而是脚本的源,而且我不请参阅如何使用Invoke-Item从源文件启动脚本,而不是将源文件保存到文件。我在这里给出的答案。 – JPBlanc