我有一个包含加密密码的配置XML文件。我们有时需要重置此密码,这样做的方法包括从XML文件中删除实际上是密码的字符串并保存文件。
该过程还涉及停止并重新启动我可以管理的几项服务,但我还没有找到一种搜索和替换字符串的方法,因为它每次都可能不同。
我想在VBS中这样做(因为这几乎是我在脚本世界中熟悉的所有内容)但我很乐意考虑以其他方式做到这一点。
我查看了Replace函数,但我还没有找到一种将通配符放入搜索条件的方法。我需要能够搜索:
<A>randomstuff</A>
并替换为:
<A></A>
对于那些可能熟悉情况的人,我正在重置Websense企业管理器的密码。
XML文件似乎是v1.0:
<?xml version="1.0" encoding="UTF-8"?>
感谢。 汤姆
答案 0 :(得分:1)
我通常不建议使用它们来解析xml / html文件,但如果你的xml非常具体,你可能没问题。
答案 1 :(得分:1)
永远不要使用正则表达式来解析XML。它们远非适合这项任务。您应该寻找的解决方案是如何使用VBScript解析XML,这非常简单。
这是一个示例脚本,它将解析XML文件并替换特定密码元素中的文本。
Set xml = CreateObject("Msxml2.DOMDocument.6.0")
xml.Load "C:\doc.xml"
Set password = xml.SelectSingleNode("//root/element/password")
password.Text = "Hello, world"
xml.Save "C:\doc.xml"
这是脚本可以使用的示例XML文件。
<root>
<element>
<password>Example password</password>
</element>
</root>
脚本的重要部分是“SelectSingleNode”方法。这使用XPath语法在XML文档中搜索我们想要的元素。 XPath语法非常简单,可以在线找到任意数量的引用。
答案 2 :(得分:0)
或者如果你在Windows机器上使用单行PowerShell命令可能更快更容易
(Get-Content doc.xml) -replace '<a>.*</a>','<a></a>' | Set-Content doc.xml
然后你将学习Powershell,以便添加到你的简历中!