BGInfo中使用VBScript报File not found错误及ID提取脚本开发求助
问题排查与解决方案
File not found 报错原因
- 相对路径无效:BGInfo运行时的默认工作目录不是配置文件所在目录,直接使用相对路径
this.conf无法定位到文件,必须填写配置文件的绝对路径。 - 权限不足:BGInfo运行身份对配置文件的存储路径没有读取权限,需要确认路径权限开放给对应运行账户。
- 文件名不匹配:Windows默认隐藏已知文件后缀,可能存在配置文件实际名为
this.conf.txt和代码中填写的文件名不一致的情况,需要核对完整文件名。
ID提取功能实现
原有代码的正则规则和目标文本格式不匹配,且缺少异常判断逻辑,修正后的可用代码如下:
Set fso = CreateObject("Scripting.FileSystemObject") ' 替换为你本地this.conf文件的完整绝对路径 Const CONF_FILE_PATH = "C:\ProgramData\your_path\this.conf" If fso.FileExists(CONF_FILE_PATH) Then fileContent = fso.OpenTextFile(CONF_FILE_PATH).ReadAll With New RegExp .Global = False .IgnoreCase = True ' 适配ad.annnet.id = 数字的格式,兼容等号两侧的任意空格 .Pattern = "ad\.annnet\.id\s*=\s*(\d+)" If .Test(fileContent) Then Echo "ID: " & .Execute(fileContent)(0).Submatches(0) Else Echo "ID: 未匹配到有效ID" End If End With Else Echo "ID: 配置文件不存在" End If
修改说明:
- 新增文件存在性判断,避免直接触发File not found报错
- 正则规则适配目标行格式,转义了
.避免被识别为正则通配符,\s*兼容等号两侧的空格、制表符等空白字符 - 新增匹配结果校验,匹配失败时输出友好提示,不会直接抛出异常导致脚本崩溃
内容的提问来源于stack exchange,提问作者sogohimo
相关产品推荐
相关产品推荐

