日期:2014-05-17  浏览次数:20984 次

.bat修改文件内容时,文件内容中有!号,修改完就没有了。求解决
Rem '/*=========修改cas.properties信息=============*/
@echo off
echo %input:"=%
pause
cd "%input:"=%"
(for /f "delims=" %%a in (web.xml) do (
  set "str=%%a"
  setlocal enabledelayedexpansion
  set "str=!str:192.168.1.108=%IP_addr: =%!"
  echo,!str!
  endlocal
))>"%input:"=%\web.xml.tmp"
move /y "%input:"=%\web.xml.tmp" "%input:"=%\web.xml"



web.xml里有!号存在,类似这样:
<filter-name>EncodingFilter</filter-name>
<filter-class>com.ybhy.common.web.SuperFilter</filter-class>
<init-param>
<param-name>url-pattern</param-name>
<param-value>((?!/ums_client_interface).)*</param-value>
</init-param>

.bat修改完后,!就没有,请问有什么方法可以不让他把!取掉。我想判断192.168.1.108这句话,在当前行是否存在,如果存在就修改,不存在就接着往下执行

------解决方案--------------------
<param-value>((?!/ums_client_interface).)*</param-value>
你说的是这个红色的感叹号吗?我测试过,貌似不会丢啊!