首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell - VBoxManage克隆脚本

Powershell - VBoxManage克隆脚本
EN

Stack Overflow用户
提问于 2015-02-15 19:36:13
回答 1查看 698关注 0票数 0

我编写了一个powershell脚本来读取文本文件中的数据,然后使用VBoxManage克隆虚拟机。但是,它可以用此错误报告返回。

代码语言:javascript
复制
[string]$vmPath = "C:\Users\someuser\VirtualBox VMs\"
[string]$vmName="QuestionMark"
[string]$vBoxClonevdi = "clonehd"
[string]$vBoxVMName = Get-Content -Path "C:\Users\someuser\VirtualBox VMs\log.txt"
[string]$invokeCommand 
[string]$filetype=".vdi"
[string]$vBoxManagewithQuotes= "`"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe`"" 



if(Test-Path ("C:\Users\someuser\VirtualBox VMs\log.txt")){

    [int]$ConvertNum = -1
    [int]::TryParse($vBoxVMName.Substring(16), [ref]$ConvertNum)

    Write-Output ("Version Number: " + $ConvertNum)
    $ConvertAfter = $ConvertNum + 1
    Write-Output ("New Version: " + $ConvertAfter)

    $vmOut = $vmPath+$vmName+$ConvertAfter+$filetype
    $vmToClone=($vmPath+$vmName+$ConvertNum+$fileType)
    $write= ($vmName + $ConvertAfter)  

}

if(Test-Path ("C:\Users\someuser\cloneVM.bat")){

     cmd.exe /c  "C:\Users\someuser\cloneVM.bat" $vmName $ConvertAfter 

}

错误:

代码语言:javascript
复制
cmd.exe : 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
At C:\Users\someuser\clonevdi.ps1:28 char:6
+      cmd.exe /c  "C:\Users\someuser\cloneVM.bat" $vmName $ConvertAfter
+      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (0%...10%...20%....0%...90%...100%:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

我不知道这个错误意味着什么。什么意思?我该怎么解决呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-15 22:16:22

可以肯定的是,您看到的是cloneVM.bat向错误流发送数据,而PowerShell则很少报告错误。我可以用下面的bat文件来模拟

代码语言:javascript
复制
'GAME OVER MAN! GAME OVER' 1>&2

从PowerShell调用bat文件

代码语言:javascript
复制
cmd.exe /c C:\temp\test.bat

在PowerShell中触发以下错误

代码语言:javascript
复制
cmd.exe : 'GAME OVER MAN! GAME OVER' 
At line:1 char:1
+ cmd.exe /c C:\temp\test.bat
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: ('GAME OVER MAN! GAME OVER' :String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

处理此问题的一种方法是将错误发送到输出流,并将其捕获到变量中。如果您需要cloneVM.bat的其他输出,这将是首选的方法。您可以使用重定向查看其他选项。

代码语言:javascript
复制
$return = cmd.exe /c C:\temp\test.bat 2>&1

如果你看一下cloneVM.bat,我会大胆地猜测一下,你会发现2>&1的一些线条

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

https://stackoverflow.com/questions/28530246

复制
相关文章

相似问题

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