2016-09-28 14 views
-1

インストール時にプログラムに共通のバグを修正できる小さなvbs/batファイルを作成したいとします。テキストファイル内のテキストを置き換える簡単な方法

Falseの接続::真

私はにことを変更するにはどうすればよい

偽接続:偽

はファイルC:\Program Files (x86)\thirdparty\thirdparty.xmlは行が含まれていると言います


Aは、彼らが会社あなただけのような単純なためReplace()を使用することができます

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

これは便利です:http://stackoverflow.com/questio ns/60034/how-can-you-find-and-replace-file-using-the-windows-command-line-envir – Ryan

+2

前の質問で削除したと言ったように、 XMLDOMを使用したVBscriptしかし、テキストを置き換えるためにどの言語を使用するかにかかわらず、XMLファイルのレイアウトを確認する必要があります。 – Squashman

+0

私はレイアウトを追加しました – Dansmith

答えて

1

を変更する

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

値を制御されているように私は、実際のXML値を与えることができないの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の作業コピーをコピーして解決しましたが、Answer + – Dansmith

関連する問題