永发信息网

写个批处理统计一个文本中的数字出现次数

答案:2  悬赏:0  手机版
解决时间 2021-02-23 22:29
  • 提问者网友:低吟詩仙的傷
  • 2021-02-23 04:54
写个批处理,统计一个文本中的数字出现次数,按从少到多顺序排列。
如文本1.txt里的内容为:
5 2 5 4 6 1 2 5 0 8 7 9 5 4 6 2 0 8 9 7 6 0 4 2 5 1 。。。。。。。。。
内容比较多,要求统计在0后面出现数字从少到多次序排列出来
如:
0后面出现的数字:1为0次,2为0次,3为0次,5为0次,6为0次,7为0次,9为0次,4为1次,8为2次;
1后面出现的数字:。。。。。。。。。。。。。。。。。
最佳答案
  • 五星知识达人网友:孤独入客枕
  • 2021-02-23 05:05
批处理写完了,我试试上传代码。 数字之间必须有空格,否则会出错。文本中间不能有换行符,如果换行则只取文本第一行。具体能统计多长的文本我不清楚,没测试过。如果有问题,或结果不符合你的要求,请追问说明。
for不能嵌套,但是call 可以。

@echo off
:: By 公子七哥
color 21
setlocal enabledelayedexpansion
title 数字统计工具
set/p=正在读入数据... set /p text= set str=%text: =%
set x=0
for %%i in ( %text% ) do set /a x+=1
echo.读入数据完毕。共%x%个数字。
echo.统计数据:
set /a x1=%x%-1
for /l %%i in (0,1,%x1%) do (
set/p=!str:~%%i,1! set /a a!str:~%%i,2!+=1
)
echo.&echo.整理结果:
:output
for /l %%i in (0,1,9) do (
set/p=%%i后面出现的数字: call :maxn %%i
call :bj !n!
echo.;
)
set/p=整理完毕,按任意键关闭。 pause>nul&goto :eof

:maxn
set tmp=%1
set n=0
for /l %%j in (0,1,9) do (
if !n! lss !a%tmp%%%j! set n=!a%tmp%%%j!
)
exit /b
:bj
for /l %%k in (0,1,%1) do (
call:pd %%k
)
exit /b
:pd
for /l %%j in (0,1,9) do (
if "!a%%i%%j!" equ "" set a%%i%%j=0
if !a%%i%%j! equ %1 set/p=%%j为!a%%i%%j!次, )
exit /b
全部回答
  • 1楼网友:风格不统一
  • 2021-02-23 06:24
既然看了也随便说两句,楼上的兄弟只能删除数字 删符号,你还得把楼上的兄弟的处理好好研究下,也很容易 for /l %%a in (0 1 9) do set str=!str:%%a=! 就是这个东西,,呵呵呵,,, ========================================================= 首先声明,分数还是给楼上的,毕竟是 人家写的,可能他现在很忙,让我代解释一下,望楼上兄弟指教 ================================================================== @echo off 关闭屏显命令,这个你应该知道 set file=c:\原 文 件.txt 把文件名存入file变量 (for /f "usebackq delims=" %%a in ("%file%") do ( set "str=%%a" 让%%a一次代替file变量中的每一行,然后把%%a存入str变量,其实就是让str存储每一行,为动态存储) setlocal enabledelayedexpansion 打开变量延迟, for /l %%a in (0 1 9) do set str=!str:%%a=! %%a代表存1 到9的数字,str=!str:%%a=! 即把每一行的数字去掉,为变量环境中的去掉 echo.!str! endlocal(关闭变量延迟) ))>nonumber.txt (把echo !str! 存入 txt文件,也就是把去掉数字的每一行重新存入这个里面) move /y nonumber.txt "%file%" (用no..txt覆盖源文件,) ========================================================== 其实最后一步最好省去,免得出错,删去后就没危险性了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯