2016-09-28 81 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

相關問題