With New RegExp
.Pattern = "\nID=(\d+)"
Echo .Execute(CreateObject("Scripting.FileSystemObject").OpenTextFile("this.conf").ReadAll)(0).Submatches(0)
End With
'Read the file from the current directory (can be different from the directory executing the script, check the execution).
Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
Dim filename: filename = "this.conf"
Dim filepath: filepath = fso.GetAbsolutePathName(filename)
Dim filecontent: filecontent = fso.OpenTextFile(filepath).ReadAll
'Read the file from the current directory (can be different from the directory executing the script, check the execution).
Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
Dim filename: filename = ".\this.conf" '.\ denotes the current directory
Dim filecontent: filecontent = fso.OpenTextFile(filename).ReadAll
Const ForReading = 1
Set oWSH = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
AppData = oWSH.ExpandEnvironmentStrings("%APPDATA%")
DataFile = AppData & "\AnyDesk\system.conf"
Set oFile = oFSO.OpenTextFile(DataFile,ForReading)
Do Until oFile.AtEndOfStream
Line = oFile.ReadLine
If InStr(Line,"ad.anynet.id") Then ID = Split(Line,"=")(1)
Loop
oFile.Close
Echo ID
3条答案
按热度按时间mm9b1k5b1#
脚本有多个问题,"找不到文件"错误的实际原因是@craig在their answer中指出的
FileSystemObject
无法定位文件"this. conf"。这是因为OpenTextFile()
方法不支持相对路径,并期望文件的绝对路径,无论它是否与执行脚本在同一目录中。您可以通过调用
GetAbsolutePathName()
并传入文件名来修复此问题。从Official Documentation - GetAbsolutePathName Method开始
假设当前目录是c:\mydocuments\reports,下表说明了
GetAbsolutePathName
方法的行为。| 路径规范(JScript)|路径规范(VBScript)|返回路径|
| - ------|- ------|- ------|
| "c:"|"c:"|"c:\我的文档\报告"|
| "丙:..."|"丙:..."|"c:\我的文档"|
| "c:"|"c:"|"c:"|
| "c:*. \97年5月"|"c:. *\97年5月"|"c:\我的文档\报告 *. *\may97"|
| "区域1"|"区域1"|"c:\我的文档\报告\区域1"|
| "c:....\我的文档"|"c:....\我的文档"|"c:\我的文档"|
像这样的东西应该会起作用;
更新:看起来你可以在
OpenTextFile()
中使用路径修饰符(谢谢你@LesFerch),所以这也应该可以工作;另一个问题是当前的
RegExp
模式与您所期望的不匹配,建议首先使用类似Regular Expressions 101的东西来测试您的正则表达式。js5cn81o2#
在bginfo中,单击自定义、新建,输入ID作为标识符,选中VB脚本文件单选按钮,然后单击浏览以选择使用以下代码保存的VBScript文件。然后将“ID”项添加到bginfo显示区域。注意:通过使用AppData环境变量引用AnyDesk数据文件,可以解决“未找到文件”错误。
请注意,数据通过一个或多个Echo语句返回到bginfo。如果在bginfo外部测试此脚本,请将Echo更改为WScript.Echo。
bxgwgixi3#
如果输出为,则您将永远无法获得所需的值/显示
文件未找到
在指定文件路径之前,regexp是没有意义的。照此看来,"this. conf"文件必须与脚本本身位于同一位置--从错误中,我假设情况并非如此。