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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

写了个批量替换字符串的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]是你的磁盘路径。

相关文档
最新文档