@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (aa.xml) do set P=%%i&if "!P:~0,13!"=="<description>" if "!P:~-14!"=="</description>" set M=!P:~13,-14!
这个时候M就是你要的变量
没明白你要call他干什么呢?
[ Last edited by Hanyeguxing on 2010-3-18 at 16:13 ]
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (aa.xml) do (
set P=%%i
if "!P:~0,13!"=="<description>" if "!P:~-14!"=="</description>" set M=!P:~13,-14!&echo !M!
)
echo %M%
Originally posted by Hanyeguxing at 2010-3-18 06:25 PM:
按你提供的代码,测试通过
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (aa.xml) do (
set P=%%i
if "!P:~0,13!"=="<descriptio ...
description前后没有空格之类的
aa.xml内容:
test
test
<description>应用系统告警add ssd,请解决。</description>
<description>应用系统告警add ssd,请解决1。</description>
df
test
test
<description>应用系统告警add ssd,请解决2。</description>
<description>应用系统告警add ssd,请解决3。</description>
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (aa.xml) do set P=%%i&if "!P:~0,13!"=="<description>" if "!P:~-14!"=="</description>" set M=!P:~13,-14!
echo %M%
@echo off&setlocal enabledelayedexpansion
::说明:old.txt为上一次的文件备份,new.txt为本次的文件备份,bak.txt为差异文件。
if not exist old.txt copy aa.xml old.txt>nul
copy aa.xml new.txt>nul
fc /c old.txt new.txt >bak.txt
for /f "eol=* skip=1 delims=" %%i in (bak.txt) do set P=%%i&if "!P:~0,13!"=="<description>" if "!P:~-14!"=="</description>" set M=!P:~13,-14!&echo !M!
if "%M%"=="" echo 无新增加警告信息
del old.txt
ren new.txt old.txt
pause
要求:
aa.xml必须是每次都在原有的内容基础上在下面新增加内容。
[ Last edited by Hanyeguxing on 2010-3-18 at 20:02 ]
@echo off&setlocal enabledelayedexpansion
::说明:ata.log为读取记录日志
if not exist data.log (set n=1) else set/p n=<data.log
for /f "skip=%n% delims=" %%i in (aa.xml) do (set P=%%i&set/a k+=1
if "!P:~0,13!"=="<description>" if "!P:~-14!"=="</description>" set M=!P:~13,-14!&echo !M!)
set/a k=%k%+%n%
>data.log echo %k%
if "%M%"=="" echo 无新增加警告信息
pause
要求:
aa.xml必须是每次都在原有的内容基础上在下面新增加内容。
说明:
本批处理未经过测试
[ Last edited by Hanyeguxing on 2010-3-18 at 21:08 ]