批量替换字符串的批处理

From:http://blog.chinaunix.net/u/2016/showart_208747.html
在windows上跑case时,我用它来替换xml文档中的名称和值什么的,还可以。但如果遇到bat中有特殊意义的字符比如<,>,%等就不行了,而且替换过程会消除每行的空格。鉴于dos知识有限,还没找到好的办法来避免这两种状况。如果用shell脚本完成替换功能就简单多了。或者直接用ultraedit的替换功能更简单。code如下:
@echo off
rem ***************************************************************************
rem ** replaceChar.bat - command line arguments List                         **
rem **                                                                       **
rem ** %1   - ext_name                                   **
rem ** %2    - characters replaced                        **
rem ** %3    - new characters                             **
rem **                                                                       **
rem ***************************************************************************
set ext_name=%1
set old_char=%2
set new_char=%3
if "%ext_name%" == "" goto warning
if "%old_char%" == "" goto warning
if "%new_char%" == "" goto warning
setlocal enabledelayedexpansion
set /a a=1
for %%x in (*.%ext_name%) do (
 for /f "tokens=*" %%i in (%%x) do (
         set "var=%%i"
  if not !var!.==. (
     set "var=!var:%old_char%=%new_char%!"
     echo !var!!>>!a!.xml
  )
 )
set /a a=!a!+1
)
goto end
:warning
echo the tool replaceChar requires 3 command line arguments:
echo 1) ext name of file in which you want to replace some characters
echo 2) characters you want to be replaced
echo 3) new characters with which you want to replace some characeters
:end
echo ***** end to replace characters *****
echo -
如果想修改后的文件名和原来的一样,可以把这一段“echo !var!!>>!a!.xml
”改成“echo !var!!>>[path]%%x.xml
”,其中[path]是你的磁盘路径。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本软件用于对文件进行替换、查找、抽取、改名、内码转换等操作。替换功能支持批量文件、批量串的处理,支持超长多行的查找串和替换串,支持动态的替换串;查找功能支持反显查找结果、抽取特定的查找结果;改名支持批量改名、按指定顺序对文件进行编号;内码转换支持中文简体与繁体在GBK和BIG5码中进行转换;替换、查找既可使用简单表达式进行匹配,也可使用正则表达式进行匹配;正则表达式能够处理特别复杂的匹配;除了文本文件,甚至还支持在office文档中替换和查找;可以说,本软件在类似软件中,功能的独特和强大达到了很高的程度,希望成为您手头一款常用工具。    本软件在准确和全面的基础上,按特定模式快速进行文件内容的查找、修改、增加、删除、移位、复制、抽取、转换甚至文件名编号等,从而完成资料的加工、采集、统计、定位、查错和校正等等。广泛用于网站页面下载后的加工、网站的网页维护、用户指南和技术资料的批量更新、数据在不同系统中进行格式转换、源代码或资源文件修改等方面;使用本工具可极大地提高数据处理的效率,对数据库提供单位、情报搜集部门、企业资料部门、出版社、报刊杂志社、电子图书制作单位、各行业网站和信息中心等有广泛的推广使用价值。    本工具有以下特点: 1、具有批量替换批量查找(可反显查找串)、批量抽取、批量改名、简繁转换等功能; 2、支持一次批量处理多个文件:记事本/写字板/Word都没有提供; 3、*支持一次批量处理多组串:包括UltraEdit/VC等比较强的替换/查找工具都没有提供这个功能; 4、*支持高级表达式的匹配:支持大小写开关、特殊字符(如换行符)、特别是正则表达式(包括通配符)可实现符合复杂规则的匹配;比UltraEdit/Word等实现的正则表达式还要完整得多; 5、*生成动态替换串:替换结果可以是动态的,文件名可以是编号等; 6、*可抽取、采集指定模式的串,例如C程序中的注释、全部的中文字符串等等; 7、*不仅支持文本/超文本/XML,还支持office文档doc/rtf/xls/ppt; 8、*支持超长多行的查找串和替换串:可以直接使用多行来编辑; 9、*查找替换定义可保存到文件作为模板重复使用,如全半角替换定义文件等; 10 、*查找结果可以突出显示(对文本/超文本/XML); 11、支持自动备份、备份恢复和清除备份; 带*的表示很难从其它软件中获得相似功能;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值