我有一个批处理文件,它调用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命令中连接各种参数?
答案 0 :(得分:0)
+1 for“将命令放在脚本中并使用-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”,其内容无关紧要。如果您可以在that比例的示例中重新创建问题,我们更有可能提供帮助。
答案 1 :(得分:0)
powershell -command“& {add-pssnapin vmware.vimautomation.core; c:\ scripts \ BuscaHostCluster_v1.ps1 -Vcenter%1 -Vuser%2 -Vpass%3%4}”
坦克!