批处理 求编写程序 查找a.txt中每一行的名字在b.txt出现的次数,并将结果降序排列输出到c.txt

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

第1个回答  2015-11-23
@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本回答被提问者和网友采纳
相似回答