Powershell goto声明替换

时间:2015-07-27 13:36:36

标签: powershell goto

我知道powershell没有goto语句。我的要求如下:

foreach($x in $xyz)
{
#something works fine
 if($a -eq $b)
 {
  #something works fine
   if($c -eq $d)
   {
    $c | Add-Content "path\text.txt"
   }else
   {
    #Here I need to go to the first if statement, rather than going to foreach loop
   }
 }else
 {
  #nothing
 }
}

尝试过break:----和函数,但两者似乎都不适用于我的情况。当我使用break:----时,它会通知最后一个错误。当我尝试使用如下功能时:

foreach($x in $xyz)
{
 #something works fine
  function xyz
  {
   if($a -eq $b)
   {
    #something works fine
    if($c -eq $d)
    {
     $c | Add-Content "path\text.txt"
    }else
    {
     xyz
    }
   }else
   {
    #nothing
   }
  }
 }

它没有进入函数xyz。

实现此目的的任何其他建议。?任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:3)

我认为你想要的是嵌套循环:

foreach ($item in $data) {

  while (condition $data) {
    # Do stuff, calculate $state

    if (otherCondition($state)) {
      # without label will exit in inner loop only,
      # execution will continue at Point-X.
      break; 
    }

    # more stuff
  }
  # Point-X
}