国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > BAT > 正文

統(tǒng)計(jì)每個(gè)數(shù)的重復(fù)次數(shù),并按照重復(fù)次數(shù)由高到低排序的批處理

2020-06-09 14:16:22
字體:
供稿:網(wǎng)友
復(fù)制代碼 代碼如下:

@echo off
:: 目的:
:: SearchNet.TXT中每行只有一個(gè)數(shù),統(tǒng)計(jì)每個(gè)數(shù)的重復(fù)次數(shù),并按照重復(fù)次數(shù)由高到低排序
:: 思路:
:: 先用sort把所有的數(shù)排序,然后統(tǒng)計(jì)重復(fù)次數(shù),以 數(shù)+重復(fù)次數(shù) 的格式寫入臨時(shí)文件tmp2.txt;
:: 提取重復(fù)次數(shù)的數(shù)字,以該數(shù)字為長度建立以該數(shù)字命名的文件,用dir來把文件名(即重復(fù)次數(shù))排序,寫入tmp3.txt;
:: 按行提取tmp3.txt中的內(nèi)容,然后在tmp2.txt中查找與tmp3.txt中匹配的記錄,寫入結(jié)果;
:: 此方案會(huì)產(chǎn)生大量的臨時(shí)文件,但是效率比較高
::
::
set num=-1
sort<SearchNet.TXT>tmp1.txt
cd.>tmp2.txt
cd.>tmp3.txt
cd.>result.txt

:: 統(tǒng)計(jì)重復(fù)次數(shù)
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%

:: 對(duì)重復(fù)次數(shù)排序
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

:: 按重復(fù)次數(shù)提取記錄
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

關(guān)于統(tǒng)計(jì)字符出現(xiàn)個(gè)數(shù)的其他方案(都不生成臨時(shí)文件)

@echo off
:: 統(tǒng)計(jì)每個(gè)字符出現(xiàn)的次數(shù),并求出出現(xiàn)次數(shù)最多的字符
:: 思路:
:: 通過提取每個(gè)位上的字符,賦予統(tǒng)一以 字符: 開頭的某些動(dòng)態(tài)變量,
:: 如果變量名相同,則自加一次,然后,通過 set 字符:命令一次性提取
:: 所有以 字符: 開頭的動(dòng)態(tài)變量,交給 for 語句來處理。set 用得很巧妙
:: 無須生成臨時(shí)文件,并按照字母升序排列
::
::
::

setlocal ENABLEDELAYEDEXPANSION
set str=adadfdfseffserfefsefseetsdmg
set /a m=0,n=0,l=0

call :loop

:: 以下是求出現(xiàn)次數(shù)最多的字符
for /f "tokens=1,2 delims==" %%i in ('set 字符:') do (
echo %%i=%%j
if %%j GTR !l! set l=%%j& set m=%%i
)

echo.出現(xiàn)次數(shù)最多的%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
:: 統(tǒng)計(jì)字符出現(xiàn)次數(shù)
:: 思路:
::    先把字符串拆解為以空格分隔的單字符組成的字符串,
:: 然后用for語句來探測(cè)每個(gè)字符在串中出現(xiàn)的次數(shù)
:: 此方法無須生成臨時(shí)文件,并按照在字符串中出現(xiàn)的
:: 先后順序顯示
::
::
::

setlocal EnableDelayedExpansion
set str=adadfdfseffserfefsefseetsdg
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 湖北省| 安化县| 岢岚县| 东乌珠穆沁旗| 峨山| 双江| 华阴市| 儋州市| 鹤庆县| 新河县| 华宁县| 丰宁| 方山县| 定陶县| 沈丘县| 班玛县| 黄陵县| 宜城市| 合江县| 小金县| 汝南县| 麦盖提县| 鹤庆县| 晋州市| 南岸区| 广灵县| 化州市| 湖州市| 丰都县| 石阡县| 彩票| 彰武县| 仁怀市| 民乐县| 汉阴县| 渝中区| 永康市| 凤台县| 勐海县| 安西县| 新巴尔虎右旗|