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

首頁 > 編程 > BAT > 正文

統計每個數的重復次數,并按照重復次數由高到低排序的批處理

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

@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综合久久噜噜| 亚洲美女动态图120秒| 久久成人av网站| 久久综合88中文色鬼| 成人久久18免费网站图片| 亚洲男人天堂手机在线| 成人黄色av免费在线观看| 久热精品在线视频| 亚洲男人天堂手机在线| 91久久在线视频| 欧美日本在线视频中文字字幕| 欧美极品美女视频网站在线观看免费| 欧美电影在线观看| 国产成人一区二区三区小说| 欧美精品在线极品| 亚洲一区二区免费在线| 中文字幕日韩综合av| 亚洲免费电影在线观看| 91久久久久久久| 91精品视频大全| 久久久97精品| 欧美影院成年免费版| 夜色77av精品影院| 亚洲国产欧美一区二区三区同亚洲| 日韩成人免费视频| 91av国产在线| 日韩美女主播视频| 日韩视频中文字幕| 在线观看久久av| 欧美国产乱视频| 亚洲精品狠狠操| 国内精品视频久久| 91九色视频在线| 日韩av电影在线免费播放| 久久在线精品视频| 成人在线小视频| 日韩欧美综合在线视频| 91亚洲国产成人精品性色| 国产视频在线观看一区二区| 8050国产精品久久久久久| 国产精欧美一区二区三区| 欧美肥婆姓交大片| 国产日韩精品电影| 欧美丰满少妇xxxxx| xvideos国产精品| 91黄色8090| 最新91在线视频| 日韩精品免费综合视频在线播放| 久久久噜噜噜久久中文字免| 26uuu另类亚洲欧美日本一| 日本伊人精品一区二区三区介绍| 亚洲第一综合天堂另类专| 亚洲电影第1页| 欧美成人午夜激情| 欧美性在线视频| 欧美做受高潮电影o| 国产精品自拍小视频| 亚洲国产91精品在线观看| 欧美老女人在线视频| 欧美日韩另类字幕中文| 韩剧1988在线观看免费完整版| 亚洲第一区中文字幕| 亚洲精品久久久久久久久久久| 欧美成人在线免费视频| 成人免费高清完整版在线观看| 亚洲成色777777在线观看影院| 亚洲一区二区三区777| 精品久久久久久久久久国产| 69久久夜色精品国产69乱青草| 欧美精品生活片| 国产精品视频一区二区高潮| 性金发美女69hd大尺寸| 亚洲欧美中文另类| 欧美日韩视频免费播放| 日韩欧美在线网址| 久久免费国产视频| 亚洲人成电影网站| 性欧美亚洲xxxx乳在线观看| 91精品国产综合久久香蕉最新版| 欧美成人免费va影院高清| 日本久久久久久久久久久| 成人免费视频网址| 久久人人爽人人爽人人片亚洲| 精品国产成人av| 亚洲欧洲成视频免费观看| 日本久久91av| 久久中文字幕一区| 亚洲精品mp4| 国产精品自产拍在线观看中文| 亚洲区在线播放| 国产精品国产亚洲伊人久久| 欧美极品美女视频网站在线观看免费| 亚洲一区二区中文| 国产精品久久9| 国产精品视频久久| 久久久免费av| 国产精品天天狠天天看| 国产成人久久久精品一区| 色综合视频网站| 午夜精品理论片| 国产精品三级在线| 久久天堂av综合合色| 亚洲欧美国内爽妇网| 中文字幕在线视频日韩| 国产亚洲精品一区二555| 欧美精品成人在线| 国产欧美一区二区三区在线看| 久久久精品一区| 6080yy精品一区二区三区| 2019精品视频| 国产日韩欧美夫妻视频在线观看| 中文字幕亚洲色图| 青草青草久热精品视频在线网站| 亚洲国产精品va| 国产精品一区专区欧美日韩| 欧美精品在线视频观看| 欧美国产日韩一区| 亚洲天堂网站在线观看视频| 国产精品丝袜久久久久久高清| 日韩av日韩在线观看| 久久久欧美精品| 久久久久久久久综合| 欧美wwwxxxx| 国产亚洲精品久久久久久777| 久久久999精品| 国产精品久久久久久av福利软件| 欧美日韩亚洲高清| 51视频国产精品一区二区| 日韩精品在线电影| 国产成人jvid在线播放| 亚洲美女自拍视频| 91亚洲午夜在线| 精品少妇一区二区30p| 午夜美女久久久久爽久久| 97福利一区二区| 亚洲精品自在久久| 久久久噜噜噜久久| 国产精品福利观看| 成人网在线观看| 激情成人中文字幕| 日韩欧美在线视频观看| 国产日韩欧美在线视频观看| www.欧美精品| 亚洲第一精品夜夜躁人人躁| 国产精品香蕉国产| 国产精品久久99久久| 91av在线影院| 国产精品成久久久久三级| 国产精品美女主播| 成人免费网站在线观看| www.日韩视频| 欧美在线观看日本一区| 97精品视频在线观看| 亚洲欧美日韩国产中文专区| 亚洲精品色婷婷福利天堂| 国产有码在线一区二区视频| 国产精品毛片a∨一区二区三区|国| 国产噜噜噜噜久久久久久久久| 欧美亚洲国产日韩2020| 国模gogo一区二区大胆私拍| 欧美人与性动交| 国产91色在线| 日韩在线视频中文字幕| 精品福利樱桃av导航|