bat修改文本文件的某段字符

比如:B文件夹中的1.txt有persist.sys.scrollingcache=2想要实现的是,搜索persist.sys.scrollingcache=并将其后值修... 比如:B文件夹中的1.txt有
persist.sys.scrollingcache=2
想要实现的是,搜索persist.sys.scrollingcache=并将其后值修改为其他值,比如改为3,如果搜索不到的话,
自行添加persist.sys.scrollingcache=3到文件中,需要替换和修改的字符串不是固定的,并且有的包含空格!!

就是想要个例子,我需要批量修改某个文件中的某部分字符串,没有对应字符的话就自行添加进去。。

路径要求:bat能修改其所在目录B文件夹中的1.txt,意思就是,bat所在目录不固定的,但是B文件是固定的
再问一下,如果用正则表达式来确定搜索的内容,又该咋写?还是上面的persist.sys.scrollingcache=2,确定被搜索字符的头部分persi及结尾部分=2来搜索,搜索要求还是搜索不到自行添加我想要的内容
展开
 我来答
nameyu8023
2013-07-04 · TA获得超过528个赞
知道小有建树答主
回答量:640
采纳率:68%
帮助的人:407万
展开全部
告诉你个秘密,其实BAT是不能修改文本中的字符的。
只有折中的方法,就是先提取内容-修改内容-导入临时文件-将源文件替换成临时文件。
需要的话可以给你写。。。
更多追问追答
追问
哦哦,我也进行了度娘搜索...貌似都是像你说的这样..bat中都有什么tmp.txt,这就是你说的折中方法吧?

那就写看吧,就要正则匹配的那种方式...谢啦
追答

关键字为"="左边全部内容。

会替换"="右边全部内容。

搜索不到会在最后一行添加。

@echo off
::文件所在文件夹路径。
set path_=d:\test\
::关键字。
set "kw=persist.sys.scrollingcache"
::替换的内容。
set "ct=3"
cd /d "%path_%"
(for /f "delims== tokens=1*" %%a in ('type test1.txt') do (
if [%%a]==[%kw%] (
set a=1
echo %%a=%ct%
) else (
echo %%a
)
)
)>test1.tmp
if not [%a%]==[1] echo %kw%=%ct% >>test1.tmp
::会在文件同文件夹下生成test1.tmp文件。
::测试可以,把ECHO去除。
echo move /y test1.tmp test1.txt
echo end...
pause
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式