2011-11-02 23 views
0

私は、次のXMLファイルを持っている:Windowsのバッチファイル - XMLファイル内の文字列を置換

<?xml version="1.0"?> 
    <configuration> 
     <startup> 
     <supportedRuntime version="v2.0.50727"/> 
     </startup> 
     <appSettings> 
     <add key="Name1" value="Value1"/> 
     <add key="Name2" value="Value2"/> 
     <add key="Name3" value="Value3"/> 
     </appSettings> 
     <runtime> 
     <legacyUnhandledExceptionPolicy enabled="true"/> 
     </runtime> 
    </configuration> 

を、私は、Windowsのバッチファイルプログラミングを使用して、「サーバー名」に「値2」を交換する必要があります。

誰かが私がWindowsバッチプログラミングの初心者として助けてくれますか?

+0

小さなCプログラムではなく、バットファイルである特別な理由は何ですか? – Radu

+0

私の要件は、バッチファイルを書くためにそのような方法が与えられています:( – Sathish

+1

必要な答えを持つstackoverflowでこのポストを見てください。 http://stackoverflow.com/questions/60034/how-can-you-find-and -replace-text-in-a-file-using-the-windows-command-line-envir – Raghuram

答えて

3

バッチは<、>、^および&文字で問題が発生します。 これは動作しますが、JScript/VBScriptスクリプト(コメントの1つで参照されるようなもの)はもっと良い解決策です。

「ORIGINAL」を検索対象のテキストに、「REPLACE」を新しいテキストに変更します。 JScriptを学ぶためのWindowsスクリプティングをお勧めします。

@echo off 
for /f "tokens=* delims=" %%f in ('type sometext.txt') do CALL :DOREPLACE "%%f" 

GOTO :EOF 
:DOREPLACE 
SET INPUT=%* 
SET OUTPUT=%INPUT:ORIGINAL=REPLACE% 

for /f "tokens=* delims=" %%g in ('ECHO %OUTPUT%') do ECHO %%~g>>out.txt 

EXIT /b 

:EOF