Vbscript 对所有文件*.xml使用OpenTextFile

Vbscript 对所有文件*.xml使用OpenTextFile,vbscript,Vbscript,我需要将文本添加到在路由中检测到我的任何XML文件的末尾,但它不接受值=* Const wbemFlagReturnImmediately = &h10 Const wbemFlagForwardOnly = &h20 strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\WMI") Set colItems = objWMIService.Exe

我需要将文本添加到在路由中检测到我的任何XML文件的末尾,但它不接受值=*

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\WMI")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Lenovo_BiosPasswordSettings", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)

Set FSO   = WScript.CreateObject ("Scripting.FileSystemObject")
Set Linea = CreateObject("Microsoft.XMLDOM")
Set Linea = FSO.OpenTextFile("c:\temp\gpresult\*.xml", ForAppending, False, -1)

For Each objItem In colItems
    If (objItem.PasswordState = 2) Then
        WScript.Echo "Contraseña desactivada"
        Linea.WriteLine ""
        Linea.WriteLine "<EUT>"
        Linea.WriteLine "    </PasswordBios>"
        Linea.WriteLine "        PasswordState="Contraseña activada""
        Linea.WriteLine "    </PasswordBios>"
        Linea.WriteLine "</EUT>"
    Else
        WScript.Echo "Contraseña desactivada"
        Linea.WriteLine ""
        Linea.WriteLine "<EUT>"
        Linea.WriteLine "    </PasswordBios>"
        Linea.WriteLine "        PasswordState="Contraseña desactivada""
        Linea.WriteLine "    </PasswordBios>"
        Linea.WriteLine "</EUT>"
    End If
    Linea.Close
    Err.Clear
    EscribeLog = 0
Next
Const wbemlagreturninstallent=&h10
常量wbemFlagForwardOnly=&h20
strComputer=“”
设置objWMIService=GetObject(“winmgmts:\\”&strComputer&“\root\WMI”)
Set colItems=objWMIService.ExecQuery(“从Lenovo_BiosPasswordSettings中选择*”、“WQL”、WBEMFlagReturn立即+wbemFlagForwardOnly)
设置FSO=WScript.CreateObject(“Scripting.FileSystemObject”)
Set Linea=CreateObject(“Microsoft.XMLDOM”)
设置Linea=FSO.OpenTextFile(“c:\temp\gpresult\*.xml”,用于显示,False,-1)
对于每个对象,在colitem中
如果(objItem.PasswordState=2),则
WScript.Echo“Contraseña desactivatada”
“线A.WriteLine”
“线A.WriteLine”
“线A.WriteLine”
Linea.WriteLine“PasswordState=“Contraseña activada”
“线A.WriteLine”
“线A.WriteLine”
其他的
WScript.Echo“Contraseña desactivatada”
“线A.WriteLine”
“线A.WriteLine”
“线A.WriteLine”
Linea.WriteLine“PasswordState=“Contraseña desactivatada”
“线A.WriteLine”
“线A.WriteLine”
如果结束
琳娜,结束
呃,明白了
描述日志=0
下一个
方法不允许使用通配符。要处理多个XML文件,请检查是否有匹配的扩展名,然后将其作为XML文件而不是纯文本文件处理

Set fso=CreateObject(“Scripting.FileSystemObject”)
设置xml=CreateObject(“Msxml2.DOMDocument.6.0”)
xml.Async=False
对于fso.GetFolder(“c:\temp\gpresult”).Files中的每个f
如果LCase(fso.GetExtensionName(f))=“xml”,则
加载f.Path
对于每个对象,在colitem中
'附加节点的代码在这里
下一个
如果结束
下一个
另外,不要通过在文件末尾追加文本来修改XML,因为XML不允许多个根节点

有效的XML:


abc
无效的XML:


abc
abc

不要像那样编辑XML文件。我已经告诉过您,XML是一种结构化、层次化的数据格式,您不能简单地向其添加文本。在前面的问题中,您已经有了使用适当的XML解析器的代码。我不知道你说的XML代码是什么。如果我指出xml文件的确切名称,我可以正确编写我使用的代码,我只需要知道在该路径上读取任何文件时使用的参数,您可以帮助我,不想输入另一个我不知道的代码,我对vbscript非常陌生。我正在谈论代码,如前所述。此外,这个问题中的代码显然不可能生成有效的XML(因为XML不允许多个根元素),或者甚至不可能在一开始就工作(因为您编写
PasswordState=
的行中的引号被破坏了)。感谢您提供的信息,但在我的例子中,我需要修改一个xml,在每个团队中,该xml是用不同的名称生成的,并且需要将此文本添加到每个:PasswordState=“activepassword”的末尾你能提供一个完整的代码来搜索路径c:\ProgramData\gpresult中的任何xml,并在xml末尾写入,而不删除之前的内容吗?因此,这不是一个免费的脚本编写服务,因此,不,我不会为你的问题提供交钥匙解决方案。如果你想这么做,你需要雇个人。