2013-04-15 148 views
2

更換一個雙反斜線我有以下內容的XML文件:使用批處理腳本XML

我想編寫一個批處理腳本,將這個\\deveserver\d$\Websites\anime搜索字符串(保存在一個名爲CurrentFolder的變量中),並將其替換爲輸入的任何輸入。

我保存在變量輸入的路徑,DestinationFolder

SET DestinationFldr= 
SET /p DestinationFldr=Enter Destination path: 

任何替代和我籤似乎不工作的文本的帖子。我認爲它無法識別雙反斜槓。請幫忙。謝謝。

回答

1
@ECHO off 
SETLOCAL 
SET "currentfolder=\\deveserver\d$\Websites\anime" 
SET "DestinationFldr=some\variety\of\input" 
(
FOR /f "delims=" %%i IN ('type aninput.xml^|findstr /n /r "$" ') DO (
SET line=%%i 
    SETLOCAL ENABLEDELAYEDEXPANSION 
    SET line=!line:*:=! 
    IF DEFINED line (ECHO(!line:%currentfolder%=%destinationfldr%!) ELSE (ECHO() 
    endlocal 
) 
)>anoutput.xml 

FC aninput.xml anoutput.xml 

按規定和destfldr一些字符串來模擬輸入設置currentfolder

  • 讀每一行到%%i和它與領先number :數 - 包括 空行
  • 賦值到line
  • 啓動SETLOCAL delayedexpansion幀
  • 除去的line部分直到幷包括第一冒號(即行號findstr
  • 如果line仍然定義,echo它與字符串替換;否則echo一個空行
  • 關閉SETLOCAL框架

FC inputfile中OUTPUTFILE到節目變化

+0

這個工作!!!!大!非常感謝! – user2283170

+0

@ user2283170如果這對您有用,預計您會上傳答案,然後「接受」答案(單擊選票下方的複選標記)。 –

+0

@JimGarrison謝謝。對不起,這是我第一次使用它。 – user2283170

0

如果你有在file.xml您可以使用此代碼:

@echo off&setlocal 
set "CurrentFolder=\\deveserver\d$\Websites\anime" 

for /f "delims=" %%i in (file.xml) do set "html=%%i" 
SET DestinationFldr= 
SET /p "DestinationFldr=Enter Destination path: " 
setlocal enabledelayedexpansion 
set "html=!html:%CurrentFolder%=%DestinationFldr%!" 
echo html: !html! 

測試&輸出:

Enter Destination path: \\myserver\&&\othersites\adele 
html: <setParameter value="\\myserver\&&\othersites\adele" name="IIS Web Application Name"/>