替换文件中的文本

时间:2015-08-27 14:46:08

标签: vbscript

您好我已经尝试了很多研究,但无法找到我需要的东西,而且我自己也没能成功地将它拼凑在一起。

我的每个用户在其个人资料中都有一个我想要编辑的XML文件。该文件包含对其计算机名称和客户端名称的引用,每次登录到新终端时都会过时。我需要用当前的computername和clientname替换它们。我无法弄清楚该怎么做的是当我只知道前几个字符时,如何在XML中搜索计算机名,然后替换它。

我的XML会有这样的条目 " InstalledPrinter name =" \ WHBCVDI0109 \ LabelPrinter650(来自IGEL-00E0C533943E)"

我需要搜索文件并用正确的条目替换WHBCVDI0109和IGEL-00E0C533943E。我的脚本成功获取了那些我不知道如何在文件中找到并替换它们的条目。

我的脚本如下所示:

Const ForReading = 1
Const ForWriting = 2

Set oShell = CreateObject( "WScript.Shell" )

'Get Variables
user=oShell.ExpandEnvironmentStrings("%UserName%")
appdata=oShell.ExpandEnvironmentStrings("%appdata%")
strComputerName = oshell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )


'Set XML location
strfile = appdata & "\Smart Label Printer\SlpUserConfig.xml"

'Open
Set objfso = CreateObject("Scripting.FileSystemObject") 
Set filetxt = objfso.OpenTextFile(strfile, ForWriting) 


strTemp = "HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA\Session\ClientName"
WScript.Echo "client name is : " & oShell.RegRead(strTemp)

非常感谢指针。

1 个答案:

答案 0 :(得分:0)

您不应使用FileSystemObject和String / RegExp操作来编辑XML文件。使用规范工具 - msxml2.domdocument - 不易出错,并且扩展得更好。

有关示例,请参阅here(编辑文字);或here换另一个(编辑属性)。

如果您发布.XML文件(的相关部分),我愿意在此处添加特定于您的用例的相同演示代码。