[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理怎样批量统计并更改文件内容?

本帖最后由 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个这样的文件,想要做出一个批处理自动修改这个目录下的所有内容
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

每个文件 统计完成的PovP与PovL次数写在哪里 ?
并修改他(counter,8)    怎么修改?修改成什么?

TOP

回复 2# cfwyy77_bat
是这样子的,我的程序里面会固定的写入(counter,6666)把次数6666替换成实际次数

TOP

回复 3# 786021512


    实际次数是 PovP与PovL次数相加?

TOP

回复 4# cfwyy77_bat
是的

TOP

本帖最后由 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
复制代码
1

评分人数

    • 786021512: 感谢给帖子标题标注[已解决]字样技术 + 1

TOP

回复 7# cfwyy77_bat
谢谢但是还是有个问题
counter这段是随机在程序里面的,有可能是第3行也有可能在第N行
我希望是替换这行的内容

TOP

回复 8# 786021512

已更新。

TOP

回复 9# cfwyy77_bat


    谢谢,但是还是有问题,我程序里面有些以*号开头的行,用上面的批处理会被隐去

TOP

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

TOP

回复 10# cfwyy77_bat


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

TOP

返回列表