Board logo

标题: [文本处理] [已解决]批处理怎样批量统计并更改文件内容? [打印本页]

作者: 786021512    时间: 2018-11-22 10:23     标题: [已解决]批处理怎样批量统计并更改文件内容?

本帖最后由 786021512 于 2018-11-28 19:04 编辑

是这样子的,我有一些程序需要更改,内容如下
&access
DEF V1()
Collision(ence1)
  MAcc(100)
PovL (to1234567890,fine,100,gun,car,load)
PovL (to1234567880,fine,100,gun,car,load)
PBC (to1234567880,fine,100,gun,car,load)
DEFCARBU
PovP (to1234567870,fine,100,gun,car,load)
PovP (to1234567840,fine,100,gun,car,load)
PovP (to1234567830,fine,100,gun,car,load)
OPED
PovL (to1234567870,fine,100,gun,car,load)
PovP (to1234567840,fine,100,gun,car,load)
PovL (to1234567830,fine,100,gun,car,load)

(counter,6666)

我想要统计上面PovP与PovL出现的次数,并修改他(counter,8)
现在在一个目录下有N个这样的文件,想要做出一个批处理自动修改这个目录下的所有内容
作者: cfwyy77_bat    时间: 2018-11-22 13:53

每个文件 统计完成的PovP与PovL次数写在哪里 ?
并修改他(counter,8)    怎么修改?修改成什么?
作者: 786021512    时间: 2018-11-22 14:50

回复 2# cfwyy77_bat
是这样子的,我的程序里面会固定的写入(counter,6666)把次数6666替换成实际次数
作者: cfwyy77_bat    时间: 2018-11-22 15:33

回复 3# 786021512


    实际次数是 PovP与PovL次数相加?
作者: 786021512    时间: 2018-11-22 20:02

回复 4# cfwyy77_bat
是的
作者: cfwyy77_bat    时间: 2018-11-23 09:30

本帖最后由 cfwyy77_bat 于 2018-11-23 13:31 编辑

回复 6# 786021512
当前目录建了一个NEW文件来存放结果文件。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. if not exist NEW mkdir NEW
  4. for /f "tokens=*" %%i in ('dir /b *.txt') do (
  5. for /f %%j in ('type "%%i" ^|find /c "PovL"') do set a=%%j
  6. for /f %%k in ('type "%%i" ^|find /c "PovP"') do set b=%%k
  7. set /a total=a+b
  8. (for /f "tokens=* delims=" %%l in (%%i) do (
  9. set "str=%%l"
  10. if "!str:~0,8!" =="(counter" ( echo;(counter,!total!)
  11. ) else ( echo;!str!)
  12. ))>.\NEW\%%i
  13. )
  14. pause
复制代码

作者: 786021512    时间: 2018-11-23 11:46

回复 7# cfwyy77_bat
谢谢但是还是有个问题
counter这段是随机在程序里面的,有可能是第3行也有可能在第N行
我希望是替换这行的内容
作者: cfwyy77_bat    时间: 2018-11-23 13:32

回复 8# 786021512

已更新。
作者: 786021512    时间: 2018-11-25 17:59

回复 9# cfwyy77_bat


    谢谢,但是还是有问题,我程序里面有些以*号开头的行,用上面的批处理会被隐去
作者: cfwyy77_bat    时间: 2018-11-26 07:49

回复 10# 786021512
*号开头的 都没有特别,会原样输出的。我这里都正常的。
另外程序有任何特殊的应提前说明,不然别人肯定按你给的例子来写。
作者: 786021512    时间: 2018-11-28 07:25

回复 10# cfwyy77_bat


    好的感谢,我自己这边加了个eol就解决了我这边开头的是分号~




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