@echo off rem 设置查询的路径 set sp=c:\\test rem 设置临时存放列表的文件 set tf=c:\\tmpList.txt rem 列举查询路径下的所有文件并加上编号后写入临时存放列表的文件 dir /b /a-d %sp%|findstr /N ".">%tf% :Lstart cls set fcount=0 set fstate=NO rem 在屏幕上显示出编号的列表,获取文件列表最大数值 for /f %%a in (%tf%) do ( echo %%a set /a fcount+=1 ) echo. set /p fn=请选择文件编号(按X退出): if /i "%fn%" equ "x" goto :eof rem 判断选择的数值是否在范围内,如果不在就跳转重新输入,按X退出 if "%fn%" leq "%fcount%" (if "%fn%" geq "1" (set fstate=OK)) if %fstate% neq OK goto :Lstart rem 判断输入的编号并从列表中得到相应的文件名显示出来 for /f "tokens=1,2 delims=:" %%e in (%tf%) do ( if "%%e" equ "%fn%" (echo.&echo.&echo 你选择了文件: %%f) )