【发布时间】:2015-09-18 15:23:36
【问题描述】:
我的 miniScript 不工作...为什么?:
Get-VM | select name | ? { $_.Name -like "*411D*" } -OutVariable VmWareName
$VmWareName |foreach {
Restore-VMSnapshot -Name * -VMName $_ -Confirm:$false
}
对不起,不会英文
【问题讨论】:
-
它不起作用怎么办?你有错误吗?
$VmWareName变量是否未设置?循环不工作吗? -
循环工作。如果我只制作“$_”,那么输出是完美的。这里的错误:
"0" konnte nicht mit "" verglichen werden。费勒:“Der Wert "System.Object[]" vom Typ "System.Object[]" kann nicht in den Typ "System.Int32" konvertiert werden。在 Zeile:5 Zeichen:12 + for ($i=0; $i -lt $VmWareName.Length; $i++) + ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : ComparisonFailure -
Restore-VMSnapshotdocumentation 使您看起来无法将*与-Name一起使用。修复它是否使它工作?该文档还提供了有关如何恢复最新快照的示例。 -
Restore-VMSnapshot -Name * -VMName 411D-SRV -Confirm:$false - 这行得通。问题是 foreach 中的 $_...
-
有问题您使用
ForEach-Objectcmdlet,但错误,您在cmets 中发布,显示for循环。
标签: powershell foreach