2016-09-28 1 views
-1

Ich möchte eine kleine vbs/bat Datei erstellen, die einen allgemeinen Fehler mit einem Programm bei der Installation beheben kann.Was ist eine einfache Möglichkeit, Text in einer Textdatei zu ersetzen

Sagen Sie die Datei C:\Program Files (x86)\thirdparty\thirdparty.xml die Zeile enthält:

Falsche Verbindung: Wahre

Wie kann ich das ändern: False

:

Falsche Verbindung


Eine modifizierte Version der XML-Top-Linien ich nicht die tatsächlichen XML-Werte geben können, wie sie Unternehmen

<?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" /> 

Wert gesteuert sind

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

Sie können dies nützlich finden: http://stackoverflow.com/questio ns/60034/how-can-you-find-and-replace-text-in-a-Datei-Using-the-windows-command-line-environ – Ryan

+2

Wie ich schon sagte in Ihrer vorherigen Frage, die Sie gelöscht haben, könnten Sie verwenden ein VBscript mit XMLDOM. Aber wir müssten das Layout der XML-Datei sehen, unabhängig davon, welche Sprache wir verwenden, um den Text zu ersetzen. – Squashman

+0

Ich habe das Layout hinzugefügt – Dansmith

Antwort

1

Sie nur Replace() für solche einfachen verwenden kann geändert werden Ersetzen Sie, versuchen Sie den folgenden VBScript-Code:

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

Ich danke Ihnen für Ihre Antwort, aber es scheint nichts zu tun. – Dansmith

+0

Obwohl ich es mit xcopy separat gelöst habe, um eine Arbeitskopie des XML an den Speicherort zu kopieren, gebe ich Ihnen die Antwort + – Dansmith

Verwandte Themen