VBScript For Each 不工作

标签 vbscript

我无法在 VBScript 中使用以下函数。我试图获取文件夹中的所有文件并循环遍历它们以获得编号最高的文件。 (文件名格式为 log_XXX.txt) 我遇到的问题是代码从未进入我的 For Each 循环。我是 VBScript 的新手,但我似乎不明白为什么这行不通。

Function GetFileNumber(folderspec)
   Dim fso, f, f1, fc, s, tempHighNum
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(folderspec)
   WScript.Echo f.Files.Count : rem prints 3
   Set fc = f.Files
   WScript.Echo fc.Count : rem prints 3
   Set tempHighNum = "000"
   For Each f1 in fc
      WScript.Echo f1.Size : rem does not print
      WScript.Echo f1.Type : rem does not print
      WScript.Echo f1.Name : rem does not print       
      s = Right(f1.name,3)
      IF NOT(ISNULL(s)) THEN
        IF (s > tempHighNum) THEN
            tempHighNum = s
        END IF
      END IF
   Next
   GetFileNumber = tempHighNum
End Function

最佳答案

改变这一行:

Set tempHighNum = "000"

以下内容:

tempHighNum = "000"

您正试图将 tempHighNum 变量设置为字符串类型。因此,您不应使用 Set 关键字。 Set 仅在将对象类型分配给变量时才需要。

关于VBScript For Each 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40405592/

相关文章:

excel - 使用 UFT 中的 VBscripting 读取 Excel 行中的值并将其存储到变量/数组

excel - 将工作表转换为仅包含字符串的数组

http - 循环发送多个http post请求

vbscript - Server.以固定路径执行

batch-file - 根据按下的按钮路由脚本的路径 mshta.exe vbscript :Execute

Windows 命令行 : open file with active process?

batch-file - 让 VBScript 检查文件名中包含特定单词的文件,然后查找并删除该文件

vbscript - 如果 VBScript 中出现错误,如何关闭 Word(或其他应用程序)?

postgresql - 使用 WShell.Script Run 启动批处理文件时 VBScript 挂起

sql-server-2005 - VBScript如何设置连接字符串