【问题标题】:-notlike not working as expected in Powershell script-notlike 在 Powershell 脚本中没有按预期工作
【发布时间】:2022-12-17 10:48:51
【问题描述】:

这个 Powershell 脚本应该遍历 Virtualbox 中的所有虚拟机,并使用给定的名称拍摄快照(如果没有这个名称的话)。 但它总是需要快照......

$snapshot = 'untouched'
$vms = VBoxManage list vms
$snapscomp= "*"+$snapshot+"*"


ForEach($machine in $vms)
{
  if ($snapshots -notlike $snapscomp)
  {
    $machinename = $machine.Split('{')[0]
    $len = $machinename.Length-1
    VBoxManage snapshot $machinename.Substring(0,$len) take $snapshot
  }
}

我希望有人建议我做错了什么。

【问题讨论】:

  • $快照是什么?
  • 根据 sn-p 提供的 $snapshots 似乎从未被赋值
  • 您从 $snapshot 中删除了 's'。相比之下还缺少 $machine。
  • 哦亲爱的,我不小心删除了我为$snapshots分配值的行,非常感谢(不应该加班没有咖啡^^)

标签: powershell


【解决方案1】:

我更喜欢尽可能使用 -match 运算符。

  if ($snapshots -notmatch $snapshot)
  {
    $machinename = $machine.Split('{')[0]
    $len = $machinename.Length-1
    VBoxManage snapshot $machinename.Substring(0,$len) take $snapshot
  }

【讨论】:

    猜你喜欢
    • 2014-05-07
    • 2012-05-10
    • 2019-06-16
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    相关资源
    最近更新 更多