2016-09-28 55 views
-1

我想创建一个小的vbs/bat文件,该文件可以修复程序安装时的常见错误。什么是替换文本文件中的文本的简单方法

说文件C:\Program Files (x86)\thirdparty\thirdparty.xml包含行:

误连线:真

我怎样才能改变这种状况到:

错误接线:假


一种改进的XML顶线 的版本,因为它们是公司控制

<?xml version="1.0" encoding="UTF-8"?> 
<!--Default XML file created for/by the Redacted Application.--> 
<Redcated> 
    <ApplicationConfiguration Environment="ProductionDB"> 
    <key name="redacted" value="redacted" /> 
    <key name="redacted" value="redacted" /> 
    <key name="False Connection" value="True" /> 

值改变

<key name="False Connection" value="True" /> 
+1

您可能会觉得这很有用:http://stackoverflow.com/questio ns/60034/how-can-you-find-and-replace-text-in-a-file-using-the-windows-command-line-envir – Ryan

+2

正如我在上一个问题中所说的那样,你可以使用一个带XMLDOM的VBscript。但是,无论我们用什么语言来替换文本,我们都需要查看XML文件的布局。 – Squashman

+0

我已经添加了布局 – Dansmith

回答

1

你可以用Replace()这样简单,我不能给实际的XML值请尝试下面的VBScript代码:

sPath = "C:\Program Files (x86)\thirdparty\thirdparty.xml" 
sCharset = "UTF-8" 

sContent = LoadTextFromFile(sPath, sCharset) 
sContent = Replace(sContent, "<key name=""False Connection"" value=""True"" />", "<key name=""False Connection"" value=""False"" />") 
SaveTextToFile sContent, sPath, sCharset 

Function LoadTextFromFile(sPath, sCharset) 
    With CreateObject("ADODB.Stream") 
     .Type = 1 ' TypeBinary 
     .Open 
     .LoadFromFile sPath 
     .Position = 0 
     .Type = 2 ' adTypeText 
     .Charset = sCharset 
     LoadTextFromFile = .ReadText 
     .Close 
    End With 
End Function 

Sub SaveTextToFile(sContent, sPath, sCharset) 
    With CreateObject("ADODB.Stream") 
     .Type = 2 ' adTypeText 
     .Open 
     .Charset = sCharset 
     .WriteText sContent 
     .Position = 0 
     .Type = 1 ' TypeBinary 
     .SaveToFile sPath, 2 
     .Close 
    End With 
End Sub 
+0

我感谢你的回答,但它似乎没有做任何事情。 – Dansmith

+0

尽管我使用xcopy将xml的工作副本复制到位置,但是我使用单独的方式解决了这个问题,我会给你答复+ – Dansmith

相关问题