[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理怎样搜索字符并替换?

搜索字符的位置不确定,可以在任意位置,如:
klxdhfiluyk n y34ry2hlnh4e73 md7hulifj5[06
psl0]lj[g78p495l6i=cvk6tktu8i0l=j8-48i[x6iu74uk-3
等等…………………………
如果我想把 3  替换成 ^4
代码该如何写
谢谢各位达人

[ 本帖最后由 jikea 于 2011-1-11 08:18 编辑 ]

@rem 得到NC文件列表
@echo off
for %%a in (c d e f h g j k i m n) do (
if exist %%a:\ dir /b/w/s %%a:\*.nc >>%windir%\nc-list.txt
)

@rem 循环NC文件列表替换指定字符
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (%windir%\nc-list.txt) do (
for /f "tokens=*" %%i in (%%a) do (
set var=%%i
setlocal enabledelayedexpansion
set "var=!var:3=7!"
echo !var!>>%%a.tmp
)
)
cls

以上代码搜搜全盘*.NC文件,然后把找到*.NC文件里面的所有3
该为7

不知道以上代码阁下是否满意

TOP

回复 2楼 的帖子

我们处理文件的时候,往往只是处理一个或几个,所以我只想处理当前文件夹下的文件,
为防止处理到系统文件,其它或者软件说明文件,不希全盘搜索,就希望象记事本一样在当前文件搜索某个字符并替换掉,代码尽量简单高效,因为记事本处理速度慢所以我才想用批处理……………………谢谢回复

TOP

  1. setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (1.txt) do set a=%%i&set b=!a:3="^4"!&echo !b:"=!
  3. pause
复制代码

TOP

回复 4楼 的帖子

运行后无变化
谢谢回复

TOP

回复 5楼 的帖子

吧你的文件贴上来看看

TOP

回复 6楼 的帖子

klxdhfiluyk n y34ry2hlnh4e73 md7hulifj5[06
psl0]lj[g78p495l6i=cvk6tktu8i0l=j8-48i[x6iu74uk-3

TOP

回复 7楼 的帖子

怎么会没反应我都可以

TOP

回复 8楼 的帖子

可能是环静问题吧,我在网吧也经常出现这种情况,就连
[code]
for %%i in (1 2 3 4 5) do echo %%i
[/code}
都没有反应,这的系统是XP的

TOP

楼主我哦这段代码是最高效率的了,
它的替换效率比系统文本的替换功能要大5倍以上(快)
如果你还没有测试运行代码就胡下结论的话,没有人再会回你的贴
如果不需要全盘找指定文件的话,您可以修改删除FOR那段代码,只在单前目录下工作,如果你会的话。

@rem 得到NC文件列表
@echo off
for %%a in (c d e f h g j k i m n) do (
if exist %%a:\ dir /b/w/s %%a:\*.nc >>%windir%\nc-list.txt
)

@rem 循环NC文件列表替换指定字符
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (%windir%\nc-list.txt) do (
for /f "tokens=*" %%i in (%%a) do (
set var=%%i
setlocal enabledelayedexpansion
set "var=!var:目标字符=替换后的字符!"
echo !var!>>%%a.tmp
)
)
del %windir%\nc-list.txt
2

评分人数

TOP

回复 10楼 的帖子

达人我试了很多次都没成功,不如你直接改好代码,我是新手,谢谢!
1.txt   

原后直接在里面替换
当然不要全盘搜索
我每次只要求替换一个字符



[ 本帖最后由 jikea 于 2010-10-28 01:52 编辑 ]

TOP

返回列表