如何修复VBScript代码运行时出现的expected statement报错问题
报错直接原因
你遇到的expected statement报错核心是VBScript块结构未正确闭合,且End关键字用法错误:
- 编写的
If ... Else分支结构没有对应的End If闭合 For Each循环没有对应的Next闭合- VBScript中单独的
End是直接终止整个脚本的语法,放在此处完全不符合语法规则
代码存在的其他问题
- 开头判断用的
obj对象从未定义、初始化,该段判断逻辑完全无效 folderspec、f1、s三个变量均未声明,你开启了Option Explicit要求变量必须先声明再使用,就算修闭合问题也会触发变量未定义报错For Each循环内写了Exit For,只会遍历第一个文件就退出,完全不符合获取文件夹下所有文件信息的需求- 防御性编程逻辑顺序错误,应该先初始化FSO对象,再判断目标文件夹是否存在,再执行后续遍历逻辑
修正后可运行代码
Option Explicit ' 声明所有需要用到的变量 Dim fso, folderspec, f, fc, f1, s ' 替换为你要查询的目标文件夹实际路径 folderspec = "C:\需要查询的目标文件夹路径" Set fso = CreateObject("Scripting.FileSystemObject") ' 防御性判断:校验目标文件夹是否存在 If Not fso.FolderExists(folderspec) Then WScript.Echo "指定文件夹不存在" Else Set f = fso.GetFolder(folderspec) Set fc = f.Files ' 表头格式化 s = "文件名称|文件大小(字节)|创建日期" & vbCrLf & "-------------------------" & vbCrLf For Each f1 In fc ' 拼接信息加分隔符、换行,方便查看 s = s & f1.Name & " | " & f1.Size & " | " & f1.DateCreated & vbCrLf Next WScript.Echo s End If ' 释放对象 Set fso = Nothing
替换代码中的目标文件夹路径即可正常运行。
内容的提问来源于stack exchange,提问作者kos0820
相关产品推荐
相关产品推荐

