本人空间所有文章如没有声明转载,则均为本人原创. comsyschen@163.com

批量清除文件中的特定字符串的脚本

上一篇 / 下一篇  2008-02-02 16:59:17 / 个人分类:windows批处理

IXPUB技术博客,?u/{+Pbo1_Ct

批量清除XML文件中的特定字符串schema="dbo"的批处理IXPUB技术博客 \ ~;Q!L,Yu

+Hj6~\ Wtw0朋友编写代码,经常要清除修改如下代码中的schema="dbo",大约有几百个文件...由于要反复调试,希望编写一个脚本可以快速清除改字符串.
$ns9gs MR|0IXPUB技术博客HA&TzRpNK s
<?xml version="1.0" encoding="utf-8"?>IXPUB技术博客1o/vAH&M
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
i5H1k5gx,a@0"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">IXPUB技术博客Qj$Xv%_9H
<!-- IXPUB技术博客i]l^8S!d!ER
Mapping file autogenerated by MyEclipse Persistence ToolsIXPUB技术博客'Yi,\|J([P8@rmi
-->IXPUB技术博客&R,Rdlu)c$h*k`!X6x
<hibernate-mapping>
oi7_&J{0<class name="cn.cdtt.uv.hibernate.DbVersion" table="DbVersion" schema="dbo" catalog="Uniview">IXPUB技术博客e9AD OtN%G;]Rc1W
<id name="version" type="java.lang.String">IXPUB技术博客r krgei4Kc)D
<column name="version" length="127" />IXPUB技术博客5bV*P _E%X
<generator class="assigned" />IXPUB技术博客E2X5w4[r{TQ*g
</id>
S1f/m$g@ C{0</class>IXPUB技术博客4[(c B)d\
</hibernate-mapping>
2qy@ C*Xk9`0

%Z3G#l }}AI0

J(D$b aJ0^'{0IXPUB技术博客#yr1I!Gw*G
编写如下代码实现了这个功能. 这个脚本主要是用到了^转义符号.

%|2U"r*S-b4lM m#G0 IXPUB技术博客!aae D/C r`9e#Ejy

==========check.bat=================================================IXPUB技术博客 i KyvuoQ%W
IXPUB技术博客ok6?e#S7vN&U E3K
rem 每个文件都是删除schema="dbo" IXPUB技术博客q`U2J*mdH
rem IXPUB技术博客4W] ]#QN!T
IXPUB技术博客"` d:H1n9k4hx?-~
@echo off & setlocal EnableDelayedExpansion
Z9HK:{"Etr6X:p_0clsIXPUB技术博客-I*rk |[F:}7o
IXPUB技术博客M _ sa#kJC3_:xLZ
echo ==============================================================
`x!DAa0echo 脚本功能说明
,Js ~3p:X"MR+_4]1|0echo ==============================================================IXPUB技术博客[[ _ d.y
echo 本脚本扫描所在目录下的所有*.xml文件
,\,I/_ yg Aw/? v0echo 直接删除第8行第4列(以空格为分隔符号),如果这列是schema="dbo"IXPUB技术博客2C!^!X2B;e
echo 同时原来的文件保存到_bak目录下
v5Xw_.W0echo 如果不希望如此,请按ctrl_c中断本脚本
0H ? @+v{3A,|0echo ==============================================================IXPUB技术博客pO\(BD^
pause
^dn` I ~y0echo ==============================================================IXPUB技术博客l4N-yZ&t H? [/sM5R
echo 正在处理文件...请稍后
Kp^:M7KD0echo ==============================================================
"v,m^ A.\_1~S M0
c:do2@1H.u?0
z%oS h*q I&M r0set line=8
X&A5TP3C(m+X.kB0rem schema="dbo" 分解为如下2个字符串
+a'Zi/?Qh K't0set str1=schema
w w])w~,~;O8{e0set str2=dbo
&q5?b-d ?2pv2~0IXPUB技术博客!ZoU'I@]U;u[
set start_time=%time%IXPUB技术博客"wv#xx9{g
set filecount=0IXPUB技术博客?h"Fi K M`W[

qX-N;~.d&Os N`0if not exist _bak ( mkdir _bak )
3Od0f2[@+uP+l0e0
/sP-\ Lp$V0KK.w0title start_time:%start_time% IXPUB技术博客]1_T R;ye2R6nT m

w Xz E } o0IXPUB技术博客Z9Be3R~7[$ZM~^
for %%f in ( *.xml ) do (
{-i;s l hJ0set /a filecount=!filecount!+1IXPUB技术博客%P a5z;[;F.Q
call :chkfile %%f %line% %str1% %str2%IXPUB技术博客y&q#m'eY^A
move /Y %%f ./_bak/%%f
R u v!N)@tOYP0) IXPUB技术博客H0`ue"s
IXPUB技术博客Xg.H `;_mdw*G;Q1C
set last_time=%time%IXPUB技术博客vf}'i:]T J({4`(r
rename *.new *.
u"b,z w9}0IXPUB技术博客;a e6G-f"wI9a
echo ==============================================================IXPUB技术博客D%Zz7p;Ai"V7X
echo 扫描完成IXPUB技术博客'jK8w0@E$N8|
echo ==============================================================IXPUB技术博客j0QH I8I s x,P
echo 开始:%start_time% 结束:%last_time% 共扫描了%filecount%文件IXPUB技术博客k6vX Aib(L
echo ==============================================================IXPUB技术博客sm V5W_8x z
pause
xu1Okp0IXPUB技术博客 e$b&M%j2A0Mn ?8lU
goto MENDIXPUB技术博客N'mf"LM

8bW|9i3D:wc+f0:chkfile
#F_~ A1h7d0set line_count=0
*{3DV/@GGX0for /F "tokens=1-5*" %%a in ( %1 ) do (
6O-h%TF)?)G0set /a line_count=!line_count!+1
D7R{.G%|;]4k0if "!line_count!" EQU "8" ( IXPUB技术博客 r9b(eY1^ \2V0v3U
if %%d EQU %3^="%4" (
q-q|2G^y,p!XBn0echo %%a %%b %%c %%e %%f>>%1.new
J:?[d/F?5z/ub0IXPUB技术博客2Lfs_ \?,@!JV/O
) else ( echo %%a %%b %%c %%d %%e %%f>>%1.new )
+Cly#G-Z2I7_0IXPUB技术博客&@/dj,h'a8\K?)mh
) else ( echo %%a %%b %%c %%d %%e %%f>>%1.new )IXPUB技术博客S%u@LiF/W7f
)IXPUB技术博客I(}`h-Ktzy

2`4t Rg3kJJ\-_0goto :EOFIXPUB技术博客&^(A&G8~y;^
IXPUB技术博客 Z:eP)d4J'@_
:goto MENDIXPUB技术博客?P)@,e|{


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar