Database 如何检查现有文件中的条目,以便不重写数据

Database 如何检查现有文件中的条目,以便不重写数据,database,vbscript,Database,Vbscript,我创建的是一个脚本,它从计算机中提取Dell服务代码、用户名和Computername,并将这些信息编译成.csv文件。此脚本将通过Active Directory登录脚本实现,因此最终用户无需执行任何操作 但我遇到的问题是,每次一个人登录时,它都会收集他们的信息,并将其添加到列表中。这意味着我的名单上可能会有两个人一遍又一遍地登录他们的电脑 我希望脚本在.csv文件中搜索收集到的特定数据,如果该数据存在,则不输入该数据 到目前为止,我掌握的代码如下: dim goFS, tsUsers, bF

我创建的是一个脚本,它从计算机中提取Dell服务代码、用户名和Computername,并将这些信息编译成.csv文件。此脚本将通过Active Directory登录脚本实现,因此最终用户无需执行任何操作

但我遇到的问题是,每次一个人登录时,它都会收集他们的信息,并将其添加到列表中。这意味着我的名单上可能会有两个人一遍又一遍地登录他们的电脑

我希望脚本在.csv文件中搜索收集到的特定数据,如果该数据存在,则不输入该数据

到目前为止,我掌握的代码如下:

dim goFS, tsUsers, bFound
set goFS = createObject("Scripting.FileSystemObject")
set tsUsers = goFS.OpenTextFile("\\xxx\Gathering\DataLog.txt", 2, True)
bFound = False
Do Until tsUsers.AtEndOfStream
   If 1 = Instr(tsUsers.ReadLine(), sUser) Then
     bFound = True
     WScript.Quit (0)
      Exit Do
   End If
Loop
tsUsers.Close
If Not bFound Then
   Set tsUsers = goFS.OpenTextFile("\\xxx\Gathering\DataLog.txt", 8, True)
   tsUsers.WriteLine sUser
   tsUsers.Close
End If

'Get Dell Service Tag Info
set ProSet = GetObject("winmgmts:").InstancesOf("Win32_BIOS")
Set ProSet1 = GetObject("winmgmts:").InstancesOf("Win32_SystemEnclosure")
For each Pro in ProSet
  For each Pro1 in ProSet1
    ServiceTag=Pro.SerialNumber
    exit for
  Next
  exit for
Next

'get username and computername, could also be asked in a batch
Set oShell     = WScript.CreateObject("WScript.Shell")
Set oShellEnv  = oShell.Environment("Process")
sComputerName  = oShellEnv("ComputerName")
sUsername      = oShellEnv("username")

dim filesys, filetxt, getname, path
Set filesys = CreateObject("Scripting.FileSystemObject")
Set filetxt = filesys.OpenTextFile("\\xx\Gathering\DataLog.csv", 8, True, -2)
path = filesys.GetAbsolutePathName("\\xx\Gathering\DataLog.csv")
getname = filesys.GetFileName(path)
filetxt.WriteLine sUsername & ", " & sComputerName & ", " & ServiceTag
filetxt.Close
我遇到的问题是运行时错误:800A0036(坏文件模式)位于位置(第5行,字符1)

谢谢大家

你的

set tsUsers = goFS.OpenTextFile("\\xxx\Gathering\DataLog.txt", 2, True)
打开文件进行写入


Cf.

我不希望它是用来写作的吗?@KeyferMathewson No;首先进行阅读检查,然后进行外观添加新用户。我在这里说得很清楚:上一篇我读错了,对此我很抱歉。现在,它似乎没有写入文件,或者甚至没有进行搜索。有什么想法吗?@KeyferMathewson如果您运行的代码与您在问题中发布的代码完全相同,那么您必须将“获取用户名”部分拉到顶部,并规范化变量(名称)sUser vs.sUserName。