Board logo

标题: [文本处理] 批处理如何将一个文本中的特定字符串替换成另一个文本里的内容? [打印本页]

作者: loveyou1205    时间: 2014-10-29 22:47     标题: 批处理如何将一个文本中的特定字符串替换成另一个文本里的内容?

本帖最后由 pcl_test 于 2016-8-5 19:55 编辑

批处理如何批量替换文件内容?
有一个A.TXT文本文件(此文本文件的名称、路径已定),里面的内容是:ABCD=123321654 ;
有另一个N.TXT文本文件(此文本文件的为不确定的名称、路径为D般W文件夹中的某个文件夹的文本文件);N.txt文件中的很多字符串,其中有一行为:ABCD=7856536258;
A.TXT文本文件和N.TXT文本文件路径不同;

现在我请大神们帮忙写一个批处理将W文件夹中所有的*.TXT文本文件(包括子文件夹)中ABCD=****的那一行全部换成A.TXT里的内容(ABCD=123321654);

想问一下各位大神,用批处理能实吗?可以的话能不能给小弟写一下!小弟万分感激!
作者: Batcher    时间: 2014-10-30 08:47

  1. @echo off
  2. set /p str=<"D:\a.txt"
  3. for /f "delims=" %%i in ('dir /b /s "D:\W\*.txt"') do (
  4.     sed -i "s/ABCD=.*/%str%/g" "%%i"
  5. )
复制代码
命令行工具 sed.exe 下载地址:
http://bbs.bathome.net/thread-16975-1-1.html
作者: Batcher    时间: 2014-10-30 21:37

好像不能实现,能不能帮忙再看一下呢?

请把你的测试用例和测试结果发出来看看。
直接回帖就行,不要给我发私信了。
作者: loveyou1205    时间: 2014-10-31 21:04

回复 3# Batcher


不好意思!我是说你提供给我的代码不能实现我上面表达出来的效果!
作者: loveyou1205    时间: 2014-10-31 21:40

bat-Batcher,不好意思!我刚刚又试了一下,还是有点问题,A文本中的ABCD=123321654替换到N.txt文件中ABCD=7856536258时,N.txt文件中的7856536258还保留着;我希望是能把N.txt文件中ABCD=7856536258全部换成ABCD=123321654 ,希望能帮我一下!谢谢!
作者: Batcher    时间: 2014-10-31 22:01

回复 5# loveyou1205


    把你的a.txt和n.txt打包压缩上传到论坛,我试试。
作者: loveyou1205    时间: 2014-10-31 23:10

附件为A文件和N文件!烦请帮忙看一下!谢谢!
作者: loveyou1205    时间: 2014-11-1 22:07

Batcher大神,能不能抽时间给我看一下呀
作者: loveyou1205    时间: 2014-11-3 00:55

命令行工具 sed.exe 是不是在XP下不起作用呀??




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2