首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在脚本中调用VBoxManage.exe

在脚本中调用VBoxManage.exe
EN

Stack Overflow用户
提问于 2015-02-18 17:04:42
回答 1查看 1.9K关注 0票数 0
代码语言:javascript
复制
[string]$VBoxManage="`"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe`""
[string]$VMtoClone="`"C:\Users\someuser\VirtualBox VMs\CloneMe\CloneMe.vdi`""
[string]$VMCloned="`"C:\Users\someuser\VirtualBox VMs\CloneMe\CloneMe_2.vdi`""
[string]$cloneVDI="clonevdi"

Write-Output ($VBoxManage + " " + $cloneVDI + " " + $VMtoClone + " " + $VMCloned)

$commandtoinvoke=($VBoxManage + " " + $cloneVDI + " " + $VMtoClone + " " + $VMCloned)

Invoke-Expression  $commandtoinvoke

我正在使用powershell脚本克隆虚拟机。我遇到的问题是以下错误:

代码语言:javascript
复制
Invoke-Expression : At line:1 char:53
+ "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonevdi "C:\Users\someuser\Virt ...
+                                                     ~~~~~~~~
Unexpected token 'clonevdi' in expression or statement.
At line:10 char:1
+ Invoke-Expression  $commandtoinvoke
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ParserError: (:) [Invoke-Expression], ParseException
    + FullyQualifiedErrorId : UnexpectedToken,Microsoft.PowerShell.Commands.InvokeExpressionCommand

这个错误意味着什么?我怎么才能阻止它的发生?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-18 23:42:06

在这种情况下不要使用调用-表达式,它将尝试在表达式解析模式下解析字符串,这就是为什么它被称为调用-表达式。最好在这种情况下使用呼叫接线器:

代码语言:javascript
复制
& $VBoxManage $cloneVDI $VMtoClone $VMCloned

注意,不需要引用参数,这是自动完成的。

https://rkeithhill.wordpress.com/2007/11/24/effective-powershell-item-10-understanding-powershell-parsing-modes/和about_Parsing。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28589457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档