标题: [文本处理] 批处理怎样计算出每个文本里面有多少行? [打印本页]
作者: z1366870839 时间: 2018-9-14 02:31 标题: 批处理怎样计算出每个文本里面有多少行?
有几万个文本,但是想知道它每个文本里面有多少行
比如文本是
13国_*****.txt 有80行
46国_*****.txt 有560行
123国_*****.txt 有990行
153国_*****.txt 有4行
193国_*****.txt 有30行
批处理后出现一个文本里面写出每个文本里面有多少行,只要193国_*****.txt 前面这个193国_**个
处理后:
13国_80个
46国_560个
123国_990个
153国_4个
193国_30个
作者: Batcher 时间: 2018-9-14 09:05
会计算单个文件多少行吗?选个你喜欢的代码试试看能否得到正确的结果:
http://bbs.bathome.net/thread-474-2-1.html#pid28474
作者: z1366870839 时间: 2018-9-14 17:26
[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost
作者: z1366870839 时间: 2018-9-14 23:01
回复 2# Batcher
我这个是很多文本的,你呢些都是单文本的
作者: z1366870839 时间: 2018-9-15 06:43
回复 2# Batcher
您好,您那个连接是单文本处理的,我这是一个文件夹里面几百个文本,没办法处理到
作者: z1366870839 时间: 2018-9-15 23:32
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
作者: z1366870839 时间: 2018-9-15 23:32 标题: 批处理怎样计算每个文本有多少行?
有几万个文本,但是想知道它每个文本里面有多少行
比如文本是
13国_*****.txt 有80行
46国_*****.txt 有560行
123国_*****.txt 有990行
153国_*****.txt 有4行
193国_*****.txt 有30行
批处理后出现一个文本里面写出每个文本里面有多少行,只要193国_*****.txt 前面这个193国_**个
处理后:
13国_80个
46国_560个
123国_990个
153国_4个
193国_30个
作者: ai20110304 时间: 2018-9-16 00:09
- @echo off
-
- for %%i in (*_*.txt) do (
- setlocal enabledelayedexpansion
- set num=0
- for /f "tokens=1 delims=:" %%x in ('findstr /n .* %%i') do set "num=%%x"
- set "str=%%i" & set "ext=%%~xi"
- set "suffix=!str:*_=!"
- set "prefix=!str:!suffix!=!"
- ren "!str!" "!prefix!!num!!ext!个"
- endlocal
- )
复制代码
回复 1# z1366870839
没测试过。你试试吧。
作者: z1366870839 时间: 2018-9-16 06:43
回复 2# ai20110304
您好,您这个是在原文件直接改为数字,不是生成新的文本,然后列出来,也没显示有多少国~不过还是谢谢你
作者: ai20110304 时间: 2018-9-16 08:37
回复 3# z1366870839
哦哦。没看到把相应的文件生成在新文件中显示。以为直接重命名
作者: ai20110304 时间: 2018-9-16 08:50
- for %%i in (*_*.txt) do (
- setlocal enabledelayedexpansion
- set num=0
- for /f "tokens=1 delims=:" %%x in ('findstr /n .* %%i') do set "num=%%x"
- set "str=%%i" & set "ext=%%~xi"
- set "suffix=!str:*_=!"
- call,set "prefix=%%str:!suffix!=%%"
- ::ren "!str!" "!prefix!!num!!ext!个"
- echo;!prefix!!num!个 >>list.txt
- endlocal
- )
复制代码
回复 4# ai20110304
你再试试。现在是不是你想要的格式。
作者: z1366870839 时间: 2018-9-17 00:10
回复 5# ai20110304
您好,您这个能重新生成文本了,但是识别不出来里边有多少行
作者: ai20110304 时间: 2018-9-17 20:45
回复 6# z1366870839
我这边测试都能啊。。。是不是你运行的位置不对
作者: ai20110304 时间: 2018-9-17 20:46
回复 6# z1366870839
在脚本代码开头,添加 一条语句 cd /d %~dp0
把脚本放在你要处理的位置。
作者: z1366870839 时间: 2018-9-17 23:26
回复 8# ai20110304
您好,这样还是不行呢
作者: z1366870839 时间: 2018-9-17 23:26
回复 9# z1366870839
可以处理了
作者: z1366870839 时间: 2018-9-17 23:30
回复 8# ai20110304
有部分是处理错误的数据,看不出是哪个代码出错。。。
作者: z1366870839 时间: 2018-9-17 23:31
回复 8# ai20110304
*_*.txt
前面的*必须是三位数才能处理正确,两位数无法处理的呢
作者: /zhqsystem/zhq 时间: 2018-9-18 00:02
本帖最后由 /zhqsystem/zhq 于 2018-9-19 00:33 编辑
水一个
更改后的无错误代码:
(call:1)>new.txt
exit
:1
for /f "delims=" %%i in ('dir/a-d/s/b ".\*.txt"')do (
set $=0&&for /f "delims=:" %%n in ('findstr/n .* "%%~fi"')do set "$=%%n"
call set "#%%~fi=%%$%%"
call echo,%%~nxi %%$%%
)
goto:eof
作者: z1366870839 时间: 2018-9-18 01:00
回复 13# /zhqsystem/zhq
哥,这个能扫,但是它不导出文本
作者: z1366870839 时间: 2018-9-18 23:45 标题: 把这个bat计算的东西输入一个文本
把这个bat计算的东西输入一个文本- for /f "delims=" %%i in ('dir/a-d/s/b ".\*.txt"')do (
- set $=0&&for /f "delims=:" %%n in ('findstr/n .* "%%~fi"')do set "$=%%n"
- call set "#%%~fi=%%$%%"
- call echo,%%~nxi %%$%%
- )
复制代码
作者: z1366870839 时间: 2018-9-18 23:46
- for /f "delims=" %%i in ('dir/a-d/s/b ".\*.txt"')do (
- set $=0&&for /f "delims=:" %%n in ('findstr/n .* "%%~fi"')do set "$=%%n"
- call set "#%%~fi=%%$%%"
- call echo,%%~nxi %%$%%
- echo;#%%~fi=%%$%%个>>1.txt
- )
复制代码
我弄成这样无法输出正确
作者: /zhqsystem/zhq 时间: 2018-9-19 00:33
回复 14# z1366870839
代码已更改完整,
删除新发重复帖
作者: z1366870839 时间: 2018-9-19 00:47
回复 15# /zhqsystem/zhq
这个扫一下会乱码。。。
作者: /zhqsystem/zhq 时间: 2018-9-19 01:07
回复 16# z1366870839
懵圈中。。。这又不是二维码,别扫了,没加什么就是加了几个CALL子调用,原理都是一样的,(原内容)>导出,子调用便于局域化重复执行N次
作者: 窄口牛 时间: 2018-9-19 07:12
each的=前后如果是数字需要^转义。
作者: hlzj88 时间: 2018-9-19 07:29
试了下,上面的真不好输出,给写了下面的,你试试- @echo off&&setlocal enabledelayedexpansion
- for /f %%i in ('dir /b/on *.txt') do (
- set aa=
- for /f "tokens=2 delims=:" %%a in ('find /c /v "" %%i')do set/a aa=%%a
- echo %%i 共!aa!行>>3.txt
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |