批处理 求编写程序 查找a.txt中每一行的名字在b.txt出现的次数,并将结果降序排列输出到c.txt
a.txt中为人名(用ABC...表示)ABCDEFb.txt中为听课情况周一听课:A、B、C、D、F周二听课:A、B周三听课:B、C周四听课:B、D、F周五听课:A、B...
a.txt中为人名(用A B C...表示)
A
B
C
D
E
F
b.txt中为听课情况
周一听课:A、B、C、D、F
周二听课:A、B
周三听课:B、C
周四听课:B、D、F
周五听课:A、B
c.txt中为输出的结果(要求降序输出,0节的最好不显示)
5节:B
3节:A
2节:C、D、F 展开
A
B
C
D
E
F
b.txt中为听课情况
周一听课:A、B、C、D、F
周二听课:A、B
周三听课:B、C
周四听课:B、D、F
周五听课:A、B
c.txt中为输出的结果(要求降序输出,0节的最好不显示)
5节:B
3节:A
2节:C、D、F 展开
展开全部
@echo off&cd/d "%~dp0"
setlocal enabledelayedexpansion
for /f "usebackq delims=" %%i in ("a.txt")do (
for /f %%j in ('find /c "%%i"^<"b.txt"') do (
if %%j gtr 0 (set/a q=99999-%%j
set "#!q!#%%i=y")))
(for /f "tokens=1,2 delims==#" %%i in ('set #')do (
set/a q=99999-%%i
if "!q!" equ "!p!" (set r=!r!、%%j)else (
if defined p echo !r!
set/a p=q
set "r=!q!节:%%j"))
echo !r!)>"c.txt"
set/p=处理完毕!正在退出... <nul&ping/n 3 127.1>nul
setlocal enabledelayedexpansion
for /f "usebackq delims=" %%i in ("a.txt")do (
for /f %%j in ('find /c "%%i"^<"b.txt"') do (
if %%j gtr 0 (set/a q=99999-%%j
set "#!q!#%%i=y")))
(for /f "tokens=1,2 delims==#" %%i in ('set #')do (
set/a q=99999-%%i
if "!q!" equ "!p!" (set r=!r!、%%j)else (
if defined p echo !r!
set/a p=q
set "r=!q!节:%%j"))
echo !r!)>"c.txt"
set/p=处理完毕!正在退出... <nul&ping/n 3 127.1>nul
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询