智能文件选择列表—— bat 批处理
智能文件选择列表 *.wim
@echo off setlocal enabledelayedexpansion title 智能文件选择列表 pushd %~dp0 & cd /d %~dp0 :menu ::智能文件选择列表 *.wim if not defined wimfile call :filesel wim if %errorlevel%==0 ( set wimfile=%selfile% echo 已经选择:!wimfile! ) else ( echo 错误:未找到 *.%suffix% 文件... ) pause ::================================================= goto :EOF :filesel ::智能文件选择列表 ::只有1个文件时自动选中,大于1≤100列表文件,>100则不再列表,改为手动输入;选择错误会自动返回选择菜单。 ::列表菜单 空格键翻页,Q结束翻页 set "suffix=%~1" set "errorlevel=0" for /f %%a in ('dir /a /b *.%suffix% 2^>nul ^| find /c /n /v ""') do set filenum=%%a if %filenum% EQU 0 ( set "errorlevel=1" & goto :EOF ) if %filenum% GTR 100 ( echo 当前文件数目大于100,列表已带来不了多少便利 echo 请输入文件路径: set /p selfile= set selfile=!selfile:"=! cls & goto :EOF ) if %filenum% EQU 1 ( set select=1 ) else ( dir /a /b *.%suffix% | find /n /v "" | more & set /p select=请输入文件编号: ) if %select% LSS 1 ( echo 只能输入 1 - %filenum% 之间的数字 && pause>nul && goto filesel ) if %select% GTR %filenum% ( echo 只能输入 1 - %filenum% 之间的数字 && pause>nul && goto filesel ) set /a var=%select%-1 if not %var% LEQ 0 ( set "skip=skip=%var% " ) else set skip= for /f "%skip%delims=" %%b in ('dir /a /b *.%suffix% ^| find /v ""') do ( set "selfile=%%~fb" && cls & goto :EOF ) ::=================================================