无忧启动论坛

标题: 智能文件选择列表 [打印本页]

作者: nttwqz    时间: 2017-8-29 18:36
标题: 智能文件选择列表

本来这个原先是为 @有阴也有阳 写的,不过后来发现,自己的WIM简易修改脚本也可以加进去,省的每次WIM文件都要重命名,然后又改进了一下,就成了这个样子,没什么技术含量。权当一娱吧,大神请直接略过……



  1. @echo off
  2. pushd %~dp0
  3. setlocal enabledelayedexpansion
  4. :filesel
  5. ::智能文件选择列表
  6. ::查找当前目录下的特定文件(不含子目录),并生成列表菜单以供选择
  7. ::只有1个文件时自动选中,1-100之间列表文件,>100则不再列表,改为手动输入;选择错误会自动返回选择菜单。
  8. ::列表菜单 空格键翻页,Q结束翻页。

  9. rem 设置查找的文件(dir参数之一)
  10. set "dirfile=*.iso"

  11. cls
  12. for /f %%a in ('dir /a /b %dirfile% 2^>nul ^| find /c /n /v ""') do set filenum=%%a
  13. if %filenum% equ 0 (echo 错误:未找到 %dirfile% 文件... & pause>nul & goto filesel)
  14. if %filenum% gtr 100 (
  15.         echo 当前文件数目大于100,列表已带来不了多少便利
  16.         echo 请输入文件路径:
  17.         set /p file=
  18.         set file=!file:"=!
  19.         goto menu
  20. )
  21. if %filenum% equ 1 (set select=1) else dir /a /b %dirfile% | find /n /v "" | more & set /p select=请选择文件:
  22. if %select% lss 1 echo 只能输入 1 - %filenum% 之间的数字 && pause>nul && goto filesel
  23. if %select% gtr %filenum% echo 只能输入 1 - %filenum% 之间的数字 && pause>nul && goto filesel
  24. set /a var=%select%-1
  25. if not %var% leq 0 (set "skip=skip=%var% ") else set skip=
  26. for /f "%skip%delims=" %%b in ('dir /a /b %dirfile% ^| find /v ""') do (
  27.         set "file=%%~fb"
  28.         goto menu
  29. )

  30. :menu
  31. echo %file%
  32. pause
复制代码

作者: 青青草    时间: 2017-8-29 23:02
顶一个!




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3