本来这个原先是为 @有阴也有阳 写的,不过后来发现,自己的WIM简易修改脚本也可以加进去,省的每次WIM文件都要重命名,然后又改进了一下,就成了这个样子,没什么技术含量。权当一娱吧,大神请直接略过……
- @echo off
- pushd %~dp0
- setlocal enabledelayedexpansion
- :filesel
- ::智能文件选择列表
- ::查找当前目录下的特定文件(不含子目录),并生成列表菜单以供选择
- ::只有1个文件时自动选中,1-100之间列表文件,>100则不再列表,改为手动输入;选择错误会自动返回选择菜单。
- ::列表菜单 空格键翻页,Q结束翻页。
- rem 设置查找的文件(dir参数之一)
- set "dirfile=*.iso"
- cls
- for /f %%a in ('dir /a /b %dirfile% 2^>nul ^| find /c /n /v ""') do set filenum=%%a
- if %filenum% equ 0 (echo 错误:未找到 %dirfile% 文件... & pause>nul & goto filesel)
- if %filenum% gtr 100 (
- echo 当前文件数目大于100,列表已带来不了多少便利
- echo 请输入文件路径:
- set /p file=
- set file=!file:"=!
- goto menu
- )
- if %filenum% equ 1 (set select=1) else dir /a /b %dirfile% | 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 %dirfile% ^| find /v ""') do (
- set "file=%%~fb"
- goto menu
- )
- :menu
- echo %file%
- pause
复制代码 |