批处理文本文件的字符替换,解决用记事本替换时功能单一的问题,批处理高手该出手了。
假如有这么一个1.txt的文本文件,内容如下:--------------------------------------------------------aaaaaa...
假如有这么一个1.txt的文本文件,内容如下:
--------------------------------------------------------
a aa a a a aa a aa aa
n10 aa a aa aa a a aa a
a a aa a a aa aa aa aa
n20 a aa aa aa a aa a
aa aa aa a aa a a
... ...
--------------------------------------------------------
按如下两点要求进行替换:
一、把字符aa替换成a,把a替换成aa 。
二、在开头含有n标号的行不进行替换。
我发现用记事本的替换功能难以做到,所以想编写一个批处理来解决,
可是本人是批处理编制方面的菜鸟,刚学不久,所以被上面的问题难住了,盼望着高人能编写这个批处理程序,并且能够说一下理由。
再说明一点,a和aa是随机出现的,行号n只在行的开头,也是随机出现的。 展开
--------------------------------------------------------
a aa a a a aa a aa aa
n10 aa a aa aa a a aa a
a a aa a a aa aa aa aa
n20 a aa aa aa a aa a
aa aa aa a aa a a
... ...
--------------------------------------------------------
按如下两点要求进行替换:
一、把字符aa替换成a,把a替换成aa 。
二、在开头含有n标号的行不进行替换。
我发现用记事本的替换功能难以做到,所以想编写一个批处理来解决,
可是本人是批处理编制方面的菜鸟,刚学不久,所以被上面的问题难住了,盼望着高人能编写这个批处理程序,并且能够说一下理由。
再说明一点,a和aa是随机出现的,行号n只在行的开头,也是随机出现的。 展开
4个回答
展开全部
@echo off
set "a=aa"
set "aa=a"
(for /f "tokens=1*" %%a in (1.txt) do (
set "str=%%a"
setlocal enabledelayedexpansion
set "str=!str:~1!"
set/a 1/str 2>nul&&set ".=%%a %%b"||for %%i in (%%a %%b)do set ".=!.!!%%i! "
echo,!.!
endlocal
))>$
move $ 1.txt
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@echo off
set "a=aa"
set "aa=a"
(for /f "tokens=1*" %%a in (1.txt) do (
set "str=%%a"
setlocal enabledelayedexpansion
set "str=!str:~0,1!"
if "!str!"=="n" (set ".=%%a %%b") else (for %%i in (%%a %%b) do set ".=!.!!%%i! ")
echo,!.!
endlocal
))>new1.txt
pause
追问
不错不错,测试通过,但后来发现问题了,比如在现实中使用,字符a和aa之间可能有其他字符,或空格,就像如下的情况:
---------
a aa479a a 3a aa a
n10 aa 54a aa a a
a a aa987a623a aa
n20 a aa aa47aa aa
83aa aa a259 aa a a
...
--------
能不能排除其他字符的干扰,替换成功,条件相同。不知这位高人能否解决。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DOS下batch文件处理,字符串操作太弱了,工具太少
如果用linux,sed, awk,一两行搞定
你不如装个sed for windows吧
如果你实在要纯DOS batch,得花一点时间帮你写,很久不碰了
如果用linux,sed, awk,一两行搞定
你不如装个sed for windows吧
如果你实在要纯DOS batch,得花一点时间帮你写,很久不碰了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-18
展开全部
建议你用Word来做,超级简单。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询