2013-04-15 121 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"/>