0

我有一个批处理文件,它调用 PowerCLI:

powershell –noexit -command "&{add-pssnapin vmware.vimautomation.core; $host.ui.rawui.WindowTitle='PowerCLI'}"

但我想在命令行上添加更多内容,与我拥有的另一个命令建立连接:

powershell.exe -command "& c:\scripts\Cluster.ps1 -vimHost %1 -vimuser %2 -vimpass %3" %4

我试图将所有参数放在 Powershell 的一行中,但它不起作用:

c:\> powershell -version 2.0 –noexit -command "&{add-pssnapin vmware.vimautomation.core; $host.ui.rawui.WindowTitle='PowerCLI'}" .\scripts\Cluster_v1.ps1 -vimHost %1 -vimuser %2 -vimpass %3" %4

不允许使用与号。& 运算符保留供将来使用;使用“&”将 & 号作为字符串传递。+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : AmpersandNotAllowed

如何在 powershell 命令中连接各种参数?

4

2 回答 2

0

+1 用于“将命令放入脚本并使用 -File 运行脚本”。

但我很好奇并模拟了一个在 PS v3 上运行良好的小批量示例。以防万一这有助于追踪您的问题,我在一个目录中有三个文件:

“psScriptFile.ps1”的内容:

param([string]$File,[string]$echoMe)
gci $file | select length | ft -auto
$echoMe

“so.bat”的内容:

powershell -noExit -command "&{add-pssnapin vmware.vimautomation.core; $host.ui.rawui.WindowTitle='PowerCLI';.\psScriptFile.ps1 -file someFile.lala 'maybe extra quotes gotcha?'}"

和内容无关的“someFile.lala”。如果您可以在该规模的示例中重现您的问题,我们更有可能提供帮助。

于 2014-06-03T17:52:15.663 回答
0

powershell -command "&{add-pssnapin vmware.vimautomation.core;c:\scripts\BuscaHostCluster_v1.ps1 -Vcenter %1 -Vuser %2 -Vpass %3 %4}"

坦克!

于 2014-06-05T16:08:54.547 回答