Board logo

标题: [文本处理] 批处理能不能自动编辑文本里的内容? [打印本页]

作者: hfllzh    时间: 2009-6-5 22:16     标题: 批处理能不能自动编辑文本里的内容?

解如TXT文件里有以下三行内容
        1D23456789ABCDEFG
        1E23456739ABCDEFG
        1H23456779ABCDEFG

把1-6这个范围和FG删掉,并且C变成Z
  变成: 789ABZDE
                739ABZDE
                779ABZDE

[ 本帖最后由 hfllzh 于 2009-6-5 22:54 编辑 ]
作者: batman    时间: 2009-6-5 23:10

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (a.txt) do (
  3.      set "str=%%a"
  4.      set "str=!str:*6=!"
  5.      set "str=!str:FG=!"
  6.      set "str=!str:C=Z!"
  7.      echo !str!
  8. )
  9. pause>nul
复制代码

作者: happlyboy    时间: 2009-6-6 10:34     标题: 回复2楼

受教了,谢谢
作者: hfllzh    时间: 2009-6-6 12:10

谢谢batman的帮助,刚才我试了一下结果是对了。但能不能结果直接把文本的内容直接改了,而不是在命令窗口里显示,还有能不能把每一行的命令的解释写出来(我是一名菜鸟,刚来这网站混),还有解如1前面还有其它数字或字母行不行的,是不是只有1是第一行第一个数字是才行。
作者: batman    时间: 2009-6-6 16:29     标题: 楼主难道连重定向都不会?

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (a.txt) do (
  3.      set "str=%%a"
  4.      set "str=!str:*6=!"
  5.      set "str=!str:FG=!"
  6.      set "str=!str:C=Z!"
  7.      if not defined flag (
  8.         echo !str!>a.txt&set "flag=a"
  9.         ) else (
  10.         echo !str!>>a.txt
  11.      )
  12. )
  13. start a.txt
复制代码

作者: lhjoanna    时间: 2009-6-6 17:05

1的前面如果还有不定的数字或字母,用批就显麻烦了
借用第三方工具,wfr.exe
可以在http://bbs.bathome.net/viewthread.php?tid=1909&statsdata=5中下载
  1. @echo off
  2. wfr a.txt /r:"(1.*6|FG)" /t
  3. wfr a.txt /r:"C" /t:"Z"
复制代码

[ 本帖最后由 lhjoanna 于 2009-6-6 17:09 编辑 ]
作者: batman    时间: 2009-6-6 17:08

原帖由 lhjoanna 于 2009-6-6 17:05 发表
1的前面如果还有不定的数字或字母,用批就显麻烦了
借用第三方工具,wfr.exe
可以在http://bbs.bathome.net/viewthread.php?tid=1909&statsdata=5||4812中下载@echo off
wfr a.txt /r:"(1.*6|FG)" /t
wfr a.txt / ...

楼上说法是否有误?set "str=!str:*6=!"是指替换掉从第一字符到6字符中的字符串,所以本题中1前面无论有什么字符(特殊字符除外),都是没有问题的。
作者: lhjoanna    时间: 2009-6-6 17:11

呵呵,我想楼主的意思是要把1之前的数字或字母留下吧。需要清除的是1和6之间的所有。
作者: hfllzh    时间: 2009-6-6 23:16

原帖由 lhjoanna 于 2009-6-6 17:11 发表
呵呵,我想楼主的意思是要把1之前的数字或字母留下吧。需要清除的是1和6之间的所有。


对我就是这个意思(自己表达能力不好)。
作者: hfllzh    时间: 2009-6-6 23:23

wfr.exe 这个怎么用,打开后一下子就不见了
作者: lhjoanna    时间: 2009-6-7 18:24

wfr.exe不是直接双击用的啊。6楼给出的链接中有帮助文档。具体使用已经在6楼给出代码。需要把wfr.exe放到和a.txt同一个目录下或者系统目录下。

[ 本帖最后由 lhjoanna 于 2009-6-9 01:14 编辑 ]
作者: inittab    时间: 2009-6-7 19:26

建议楼主方便的话,把部分文档发上来。可避免大家在猜迷。




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