亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > BAT > 正文

統計重復次數并排序的批處理

2020-07-26 20:25:35
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

@echo off
:: 目的:
:: SearchNet.TXT中每行只有一個數,統計每個數的重復次數,并按照重復次數由高到低排序
:: 思路:
:: 先用sort把所有的數排序,然后統計重復次數,以 數+重復次數 的格式寫入臨時文件tmp2.txt;
:: 提取重復次數的數字,以該數字為長度建立以該數字命名的文件,用dir來把文件名(即重復次數)排序,寫入tmp3.txt;
:: 按行提取tmp3.txt中的內容,然后在tmp2.txt中查找與tmp3.txt中匹配的記錄,寫入結果;
:: 此方案會產生大量的臨時文件,但是效率比較高
::
::
set num=-1
sort<SearchNet.TXT>tmp1.txt
cd.>tmp2.txt
cd.>tmp3.txt
cd.>result.txt
:: 統計重復次數
setlocal enabledelayedexpansion
for /f %%i in (tmp1.txt) do (
set /a num+=1
set second=!first!
set first=%%i
if not "!second!"=="" if !second! neq !first! (>>tmp2.txt echo !second! !num!&set num=0)
)
>>tmp2.txt echo %first% %num%
:: 對重復次數排序
md tmp && pushd tmp
for /f "tokens=2" %%i in (../tmp2.txt) do (
cd.>%%i
for /l %%j in (1,1,%%i) do echo.>>%%i
)
>../tmp3.txt dir /o-s /b
:: 按重復次數提取記錄
for /f %%i in (../tmp3.txt) do (
>>../result.txt findstr " %%i$" ../tmp2.txt
)
popd && rd /q /s tmp
del tmp1.txt tmp2.txt tmp3.txt
start result.txt
goto :eof
關于統計字符出現個數的其他方案(都不生成臨時文件)
@echo off
:: 統計每個字符出現的次數,并求出出現次數最多的字符
:: 思路:
:: 通過提取每個位上的字符,賦予統一以 字符: 開頭的某些動態變量,
:: 如果變量名相同,則自加一次,然后,通過 set 字符:命令一次性提取
:: 所有以 字符: 開頭的動態變量,交給 for 語句來處理。set 用得很巧妙
:: 無須生成臨時文件,并按照字母升序排列
::
::
::
setlocal ENABLEDELAYEDEXPANSION
set str=adadfdfseffserfefsefseetsdmg
set /a m=0,n=0,l=0
call :loop
:: 以下是求出現次數最多的字符
for /f "tokens=1,2 delims==" %%i in ('set 字符:') do (
echo %%i=%%j
if %%j GTR !l! set l=%%j& set m=%%i
)
echo.出現次數最多的%m%=%l%
pause
goto :EOF
:loop
call set m=%%str:~%n%,1%%
if not defined m goto :EOF
set /a "字符:%m%+=1"
set /a n+=1
goto loop
@echo off
:: 統計字符出現次數
:: 思路:
::    先把字符串拆解為以空格分隔的單字符組成的字符串,
:: 然后用for語句來探測每個字符在串中出現的次數
:: 此方法無須生成臨時文件,并按照在字符串中出現的
:: 先后順序顯示
::
::
::
setlocal EnableDelayedExpansion
set str=adadfdfseffserfefsefseetsdg
rem 拆解字符串
:analyze
set str_tmp=%str_tmp% %str:~0,1%
set str=%str:~1%
if not "%str%" == "" goto analyze
rem
for %%i in (%str_tmp%) do call :exclude %%i
pause
exit
:exclude
for %%i in (%counted%) do if "%1"=="%%i" goto :eof
set counted=%counted% %1
call :count %1
goto :eof
:count
for %%i in (%str_tmp%) do if "%1"=="%%i" set /a %1+=1
echo %1 !%1!
goto :eof
@echo off
:: 統計字符出現的次數
:: 思路:
:: 拆解字符串,以空格分隔組成新字符串
:: 通過 shift 來call 不同的參數,并用
:: set 來命名變量,變量名具有統一的開頭
:: 最后通過 set 來顯示這些變量
::
::
::
setlocal EnableDelayedExpansion
set str=adadfdfseffserfefsefseetsdg
:loop
set str_tmp=%str_tmp% %str:~0,1% && set str=%str:~1%
if not "%str%" == "" goto loop
call :start %str_tmp%
set .
echo 出現次數最多的:%max%=%maxN%
pause
exit
:start
if [%1]==[] ( goto :eof ) else ( set /a .%1+=1 )
if !.%1! GTR !maxN! set maxN=!.%1!&& set max=.%1
shift
goto :start
@echo off
:: 綜合以上方案,最簡潔的代碼如下
::
::
setlocal EnableDelayedExpansion
set str=adadfdfseffserfefsefseetsdgadadfdfseffserfefsefseetsdga
:loop
set str$=%str$% %str:~0,1%&set str=%str:~1%
if not "%str%" == "" goto loop
for %%n in (%str$%) do (
set /a .%%n+=1
if !.%%n! GTR !maxN! set maxN=!.%%n!&&set max=%%n)
set .
echo 出現次數最多的:%max%=%maxN%
pause
exit
@echo off&setlocal
:: sort之后,通過比較這一次取到的內容和上一次的內容是否相等來統計重復次數
:: 如何同時保存本次和上次的內容需要很大的技巧
:: 注意要把次數的初值設置為1,for語句的后括號之后不能緊跟跳出語句
::
::
set /a n=1
for /f %%a in ('type 1.txt^|sort') do (
call :pp %%a
)
:pp
if not defined bb goto b
if "%bb%"=="%1" (set /a n+=1) else (>>ko.txt echo %bb% %n%次&set /a n=1)
:b
set bb=%1
goto :eof
@echo off&setlocal enabledelayedexpansion
:: 帶排序功能的代碼
:: 用 for /l 來控制每次 findstr 的字符長度,
:: 然后把同一長度的用 sort 來排序,從而突破了
:: sort 只能按字符位大小來排序這一限制
::
::
set a=[0-9]
for /l %%a in (1,1,3) do (
call :pp !a!
set a=!a![0-9]
)
goto c
:pp
for /f %%x in ('findstr "^%1$" aa.txt^|sort') do @echo %%x >>dd.txt
goto :eof
:c
set /a n=1
for /f %%a in ('type dd.txt') do (
call :pp %%a
)
:pp
if not defined bb goto b
if "%bb%"=="%1" (set /a n+=1) else (>>ko.txt echo %bb% %n%次&set /a n=1)
:b
set bb=%1
goto :eof
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情一级精品国产| 精品视频在线播放色网色视频| 九九热这里只有在线精品视| 91免费看片在线| 欧美激情视频在线观看| 91免费欧美精品| 国产精品白嫩美女在线观看| 在线成人一区二区| 日韩三级影视基地| 久久久久久久一区二区三区| 成人免费视频网址| 国产精品一区二区久久久久| 91在线无精精品一区二区| 日本成人在线视频网址| 91中文在线视频| 成人黄在线观看| 亚洲精品国产精品国自产在线| 日韩欧美国产一区二区| 国产精品igao视频| 欧美夫妻性视频| 久久成人av网站| 欧美黑人狂野猛交老妇| 国产狼人综合免费视频| 亚洲天堂成人在线视频| 欧美电影《睫毛膏》| 色与欲影视天天看综合网| 综合国产在线视频| 国产中文字幕91| 国产精品v片在线观看不卡| xx视频.9999.com| 欧美性高跟鞋xxxxhd| 国产精品美女久久久久av超清| 久久久精品亚洲| 欧美激情免费看| 欧美国产第一页| 国产精品日韩av| 黄色一区二区在线观看| 亚洲欧美国内爽妇网| 日韩在线视频国产| 国产精品成久久久久三级| 日韩电影第一页| 欧美日韩性视频在线| 97涩涩爰在线观看亚洲| 亚洲国产另类 国产精品国产免费| 国产亚洲一级高清| 国产精品精品视频一区二区三区| 欧美日韩中国免费专区在线看| 69久久夜色精品国产69| 国产精品电影观看| 岛国av一区二区| 91国产精品91| 国产欧亚日韩视频| 91美女片黄在线观| 91国语精品自产拍在线观看性色| 国产精品av免费在线观看| 亚洲图片欧洲图片av| 精品久久久久久中文字幕一区奶水| 亚洲国产成人av在线| 亚洲国产精品女人久久久| 亚洲人成在线观看| 亚洲综合中文字幕在线观看| 成人性生交大片免费看视频直播| 欧美日韩在线视频首页| 欧美刺激性大交免费视频| 亚洲电影免费观看| 成人av色在线观看| 亚洲少妇中文在线| 国内偷自视频区视频综合| 美女久久久久久久久久久| 91精品视频观看| 亚洲已满18点击进入在线看片| 成人福利免费观看| 91精品久久久久久久久不口人| 尤物yw午夜国产精品视频明星| 欧美二区在线播放| 久久精品人人做人人爽| 不卡av电影院| 国外成人在线视频| 亚洲午夜久久久久久久| 久久久欧美精品| 欧美一级高清免费| 国产综合在线观看视频| 2019国产精品自在线拍国产不卡| 日韩中文字幕在线视频| 深夜精品寂寞黄网站在线观看| 久久中文精品视频| 亚洲成人网av| 亚洲一区二区三区四区视频| 国产不卡精品视男人的天堂| 国产成人小视频在线观看| 久久视频免费在线播放| 性欧美在线看片a免费观看| 国产精品情侣自拍| 久久久影视精品| 91在线网站视频| 亚洲人成欧美中文字幕| 亚洲网站在线看| 日韩av免费在线看| 久久韩剧网电视剧| 亚洲精品久久久久久久久久久| 精品中文字幕视频| 日韩欧美成人区| 久久影院模特热| 国产午夜一区二区| 亚洲无限av看| 欧美香蕉大胸在线视频观看| 欧美有码在线观看| 97国产精品久久| 欧美日韩国产精品一区二区三区四区| 久久在精品线影院精品国产| 精品久久久久人成| 国产精品第10页| 精品久久久在线观看| 日韩免费观看网站| 国产日韩欧美视频| 国产午夜精品视频免费不卡69堂| 91在线看www| 欧美精品videosex极品1| 国产一区二区丝袜| 精品国产精品三级精品av网址| www.日韩.com| 亚洲欧美成人在线| 亚洲成色777777在线观看影院| 美女视频黄免费的亚洲男人天堂| 国产精品美乳一区二区免费| 高清亚洲成在人网站天堂| 久久亚洲春色中文字幕| 国产丝袜精品第一页| 国产一区二区在线免费视频| 中文字幕亚洲欧美| 亚洲国产女人aaa毛片在线| 亚洲最大成人网色| 国产激情久久久久| 亚洲欧美在线x视频| 亚洲va男人天堂| 亚洲欧美一区二区激情| 欧美自拍视频在线| 国产自产女人91一区在线观看| 青青草精品毛片| 狠狠躁天天躁日日躁欧美| 欧美丝袜一区二区| 日韩av免费看网站| 热99精品里视频精品| 亚洲美女性生活视频| 亚洲一区美女视频在线观看免费| 久久精品视频在线播放| 亚洲激情视频网| 国产精品老女人精品视频| 欧美黑人巨大精品一区二区| 2019最新中文字幕| 欧美极品美女视频网站在线观看免费| 日韩在线免费视频观看| 精品国产一区二区三区久久| 久久精品人人爽| 色青青草原桃花久久综合| 亚洲人成网站免费播放| 久久精品视频免费播放| 亚洲国产精品大全| 日韩的一区二区| 亚洲黄色av网站| 亚洲福利小视频| 久久99久久99精品中文字幕| 日本久久久久亚洲中字幕| 高跟丝袜欧美一区|