Board logo

标题: [文本处理] [已解决]批处理怎样实现文本替换? [打印本页]

作者: fanfande    时间: 2011-5-5 07:55     标题: [已解决]批处理怎样实现文本替换?

本帖最后由 fanfande 于 2011-5-10 08:09 编辑

一个txt文本里面原有的文本是这样的格式:

谷歌==htpp://www.google.com==全球最大的搜索引擎
百度==http://www.baidu.com==国内最大的搜索引擎

目的是转换另外一个格式:

谷歌,htpp://www.google.com,1
百度.http://www.baidu.com,1

最好是在生成的另外一个文本文件上!防止错误!还有个备份!

谢谢!
作者: fanfande    时间: 2011-5-5 08:50

上面有个地方更正一下
百度,http://www.baidu.com,1
这个也是逗号,我写成句号了
作者: hucuibai    时间: 2011-5-5 09:25

for /f "tokens=1-3 delims===" %%a in (log.txt) do echo %%a,%%b,1
作者: fanfande    时间: 2011-5-5 11:11

我运行了没有变化
txt文本中有N个这样的有规律的
谷歌==htpp://www.google.com==全球最大的搜索引擎
百度==http://www.baidu.com==中文引擎
搜狐==http://www.sohu.com==搜狐网
...
转换为以下格式:

谷歌,htpp://www.google.com,1
百度,http://www.baidu.com,1
搜狐,http://www.sohu.com,1
作者: fanfande    时间: 2011-5-5 11:55

请问有人吗
作者: hfg1977    时间: 2011-5-5 12:49

3 楼的代码没有任何问题.
作者: fanfande    时间: 2011-5-5 13:04

那我运行怎么没有任何反应呢
作者: fanfande    时间: 2011-5-5 13:05

我在结尾加了pause
看了一下
他就是没把结果存到另外一个文本里面!
麻烦帮我补全好吗
作者: hucuibai    时间: 2011-5-5 13:14

4# fanfande


如果跟你列出来的内容一样,应该是没有问题的,你把你的源文件的附件传上来,只需要传前面几行!
作者: hfg1977    时间: 2011-5-5 13:33

  1. (for /f "tokens=1-3 delims==" %%a in (log.txt) do echo %%a,%%b,1)>>youFileName
复制代码

作者: fanfande    时间: 2011-5-5 15:23

我传了2个文件就是这样的类似的格式
生成一个新的txt存放处理好的命名为 处理后.txt

处理前.txt   这是是处理前的样子
处理后.txt   这是是处理后的样子
作者: hucuibai    时间: 2011-5-5 16:30

本帖最后由 hucuibai 于 2011-5-5 16:31 编辑

你的文本是utf-8格式的,读出来的是乱码,先要转换一下格式
  1. @echo off
  2. concmd /o:gbk 处理前.txt>nul
  3. for /f "tokens=1-3 delims===" %%a in (处理前.txt) do echo %%a.%%b,1
  4. pause
复制代码
concmd.exe下载地址
http://www.xdowns.com/soft/4/68/2009/Soft_50143.html
作者: fanfande    时间: 2011-5-5 17:15

老师
你好
运行下来还是显示的错误的
作者: hucuibai    时间: 2011-5-5 17:18

13# fanfande


下载地址不是给你了吗?我楼上都贴出来了!你去下载下来放到system32文件夹下

concmd.exe下载地址
http://www.xdowns.com/soft/4/68/2009/Soft_50143.html
作者: fanfande    时间: 2011-5-5 17:55

你好老师!
运行下来没有生成新的txt:  处理后.txt 用来存放处理的结果!
作者: fanfande    时间: 2011-5-5 18:29

14# hucuibai


你好老师!
运行下来没有把生成的结果放在处理后.txt这个文本里面!
作者: Batcher    时间: 2011-5-5 22:44

11# fanfande


能把处理前的文件上传到顶楼不?顺便改一下顶楼那个标点错误?
作者: fanfande    时间: 2011-5-6 01:07


我把几个图拼在一起让大家看清楚!
谢谢老师们!
作者: fanfande    时间: 2011-5-6 01:10

图的附件太大,我把他放在一个空间里面!


谢谢老师们!
作者: hucuibai    时间: 2011-5-6 09:00

本帖最后由 hucuibai 于 2011-5-6 09:05 编辑

19# fanfande


重定向你都不知道吗?结果已经显示出来了,你重定向到处理后.txt就可以了
  1. @echo off
  2. concmd /o:gbk 处理前.txt>nul
  3. for /f "tokens=1-3 delims===" %%a in (处理前.txt) do (echo %%a,%%b,1>>处理后.txt)
  4. pause
复制代码

作者: CrLf    时间: 2011-5-6 12:53

少尉不知道重定向...
作者: fanfande    时间: 2011-5-6 16:02

20# hucuibai

离成功越来越近了!

就是现在每行生成的结果逗号后面没有出现数字"1"
正确的格式如下:

谷歌.htpp://www.google.com,1
百度.http://www.baidu.com,1
搜狐.http://www.sohu.com,1

再次表示谢谢!
作者: user11    时间: 2011-5-6 16:45

  1. (for /f  %%a in (处理后.txt) do echo %%a1)>>再处理后.txt
复制代码

作者: hucuibai    时间: 2011-5-6 17:41

本帖最后由 hucuibai 于 2011-5-6 17:49 编辑

22# fanfande
  1. @echo off
  2. concmd /o:gbk 处理前.txt>nul
  3. (for /f "tokens=1-3 delims===" %%a in (处理前.txt) do echo %%a,%%b,1)>处理后.txt
  4. pause
复制代码
我这里测试是成功的
作者: fanfande    时间: 2011-5-6 20:11

谢谢您!
顺祝周末愉快!




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