写了个批量替换字符串的bat批处理(replaceChar.bat)

在windows上跑case时,我用它来替换xml文档中的名称和值什么的,还可以。但如果遇到bat中有特殊意义的字符比如<,>,%等就不行了,而且替换过程会消除每行的空格。鉴于dos知识有限,还没找到好的办法来避免这两种状况。如果用shell脚本完成替换功能就简单多了。或者直接用ultraedit的替换功能更简单。

代码如下:

@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)

相关推荐

  • DOS(bat)字符串替换原理

    把字符串 "c:/test/1" 中的 "/" 全部替换成 "//" 的原理: (假设 "C:/TEST/1" 字符串已存在 VAR 变量中:) C:/WINDOWS>set "var=C:/TEST/1" (将 var 变量中的字符串里 "/" 字符全部替换成 "//") C:/WINDOWS>set "var=%var:/=//%"

  • 写了个批量替换字符串的bat批处理(replaceChar.bat)

    在windows上跑case时,我用它来替换xml文档中的名称和值什么的,还可以.但如果遇到bat中有特殊意义的字符比如<,>,%等就不行了,而且替换过程会消除每行的空格.鉴于dos知识有限,还没找到好的办法来避免这两种状况.如果用shell脚本完成替换功能就简单多了.或者直接用ultraedit的替换功能更简单. 代码如下: @echo off rem **********************************************************************

  • Idea使用正则表达式批量替换字符串的方法

    由于一开始的粗放扩张,公司项目代码里,遗留有很多类似魔法数的写死的id,导致现在维护困难.于是交给我任务,将这些id替换成静态变量. 这些id有十多种,分布在十个文件中,总共六十多处,要手动去查找替换几乎是不可能的. Idea中,菜单栏Edit->find->replace in path可以打开全文件查找功能,可以对项目的所有文件中的内容进行查找替换. 现在我们有这样的代码,其中的abcd是写死的id: String id="abcd".equals(str); 要替换成

  • MSSQL批量替换语句 在SQL SERVER中批量替换字符串的方法

    方法一:(这种是最常用的,因为很多大段的内容都使用text ntext等数据类型,而我们通常也是替换里面的内容) varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace 替换 text ntext 数据类型字段的语句 复制代码 代码如下: update 表名 set 字段名=replace(cast(与前面一样的字段名 as varchar(8000)) ,'原本内容','想要替换成什么') 方法二:(替换其他数据

  • 批量替换 MySQL 指定字段中的字符串

    批量替换的具体语法是: 复制代码 代码如下: UPDATE 表名 SET 指定字段 = replace(指定字段, '要替换的字符串', '想要的字符串') WHERE 条件; 如果你想把 article 表中 ID 小于5000的记录,content 字段中"解决"替换成"解放",那么语法就是: 复制代码 代码如下: UPDATE article SET content = replace(content, '解决', '解放') WHERE ID<5000

  • sqlserver replace函数 批量替换数据库中指定字段内指定字符串参考方法

    语法 REPLACE ( 'string_e­xpression1' , 'string_e­xpression2' , 'string_e­xpression3' ) 参数说明 'string_e­xpression1' 待搜索的字符串表达式.string_e­xpression1 可以是字符数据或二进制数据. 'string_e­xpression2' 待查找的字符串表达式.string_e­xpression2 可以是字符数据或二进制数据. 'string_e­xpression3' 替换

  • 如何批量替换相对地址为绝对地址(利用bat批处理实现)

    如果你的url链接是相对路径"static/mapi.css",你想把他批量替换成绝对路径"http://dev.baidu.com/wiki/static/map/cloud/static/mapi.css".那么,你可以这样做: 写一个PHP文件,把需要替换的网址写进去. 这个代码的意思就是,把#BASE_URL#替换成 http://api.map.baidu.com/lbsapi/cloud/ . 这句话的意思是,把resource文件里的内容替换一遍,然后

  • python批量替换多文件字符串问题详解

    系统如下: 操作系统 : CentOS7.3.1611_x64 Python 版本 : 2.7.5 问题描述 编码过程中有时候会遇到在多个源文件中存在同一个变量名(比如 : writeBuffer),需要替换为新的变量名(比如 : write_buffer)的问题. 怎么能方便快捷的解决该问题呢? 解决方案 使用sed sed和grep结合使用可以替换当前文件夹多个文件的内容. 格式 : sed -i 's/原字符串/新字符串/g' `grep  -rl 原字符串 所在目录` 示例代码: sed

  • [Perl]文字/代码批量替换工具

    Perl脚本batchReplace.pl可以用来批量替换文件中的文字/代码.可在指定目录中查找指定类型的文件,并递归检查子目录:在输出文件时复制输入文件的目录结构. [附件]Win32应用程序batchReplace.exe是由Perl脚本编译产生的可执行程序,不需安装Perl运行环境即可执行. 在命令行中使用 batchReplace.exe[ -i 输入文件路径(或包含文件的目录)][ -o 输出文件位置(文件或目录)][ -c 批量输入文件的扩展名,以"."开始,多个扩展名之间

  • Linux中用rename命令批量替换文件名方法实例

    前言 在Linux系统中修改文件名可以用mv命令,但是它只能对单个文件进行操作,如要要批量执行还要写shell脚本,用for语句迭代执行,不过Linux中另外一个命令支持批量替换文件名,它是rename,rename支持正则表达式匹配. 需要注意的是:rename命令在不同的Linux发行版语法格式不一样. 语法 在Debian或者Ubuntu环境下使用的语法是: rename 's/stringx/stringy/' files 而在CentOS下或者RedHat下是: rename stri

  • php实现批量删除挂马文件及批量替换页面内容完整实例

    本文实例讲述了php实现批量删除挂马文件及批量替换页面内容的方法.分享给大家供大家参考,具体如下: <?php # functionality: 本程序可以扫描指定目录的所有文件,进行内容替换.可用于被批量挂马的删除以及批量更新页面某些内容. # 本程序适用于对UTF-8的页面进行修改. set_time_limit(3600); //脚本运行时间 ?> <?php if($_POST['Submit']=='开始执行操作'){ $dir = $_POST['searchpath'];

随机推荐