对于每个循环:如何跳出条件

for each loop: how to step out of conditions

我一直在创建循环以使用 VBScript 测试文件名。准确地说,我正在尝试执行类似 For Each 循环中的跳转的操作。循环应该测试文件夹中的所有文件,在某些情况下它应该删除一些文件。

但是当 运行 时,它会删除一个文件并尝试针对下一个条件测试已删除的文件。所以我寻找解决方案来结束此检查并跳转到下一个文件,但我找不到有效的解决方案。

for each file in folder.files
  if (filename = "foo.bar") then
    log.writeline("found foo.bar -> delete!")
    fs.deletefile (folder & file.name), true
    'exit for
  end if
  if (isNumeric(firstPosition)) then
    if (isNumeric(secondPosition)) then
      log.writeline("2 numbers seen -> alright!")
    else
      log.writeline("Filename is corrupt!")
      fs.copyFile file, errorFolder, true
      fs.deleteFile file, true
      'exit for 
    end if
  end if

使用else如下:

for each file in folder.files
  if (filename = "foo.bar") then
    log.writeline("found foo.bar -> delete!")
    fs.deletefile (folder & file.name), true
    'exit for
  else
    if (isNumeric(firstPosition)) then
      if (isNumeric(secondPosition)) then
        log.writeline("2 numbers seen -> alright!")
      else
        log.writeline("Filename is corrupt!")
        fs.copyFile file, errorFolder, true
        fs.deleteFile file, true
        'exit for 
      end if
    else
    end if
  end if
next

甚至elseif如下

for each file in folder.files
  if (filename = "foo.bar") then
    log.writeline("found foo.bar -> delete!")
    fs.deletefile (folder & file.name), true
    'exit for
  elseif (isNumeric(firstPosition)) then
    if (isNumeric(secondPosition)) then
      log.writeline("2 numbers seen -> alright!")
    else
      log.writeline("Filename is corrupt!")
      fs.copyFile file, errorFolder, true
      fs.deleteFile file, true
      'exit for 
    end if
  else
  end if
next

VBScript 中没有类似 goto 的语句;只有结构化控制机制。阅读 VBScript User's Guide and VBScript Language Reference