无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3098|回复: 0
打印 上一主题 下一主题

智能文件选择列表 批处理

[复制链接]
跳转到指定楼层
1#
发表于 2017-12-11 11:48:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


  1. @echo off
  2. setlocal enabledelayedexpansion
  3. title 智能文件选择列表

  4. pushd %~dp0 & cd /d %~dp0


  5. :menu
  6. ::智能文件选择列表 *.wim
  7. if not defined wimfile call :filesel wim

  8. if %errorlevel%==0 (
  9.         set wimfile=%selfile%
  10.         echo 已经选择:!wimfile!
  11. ) else (
  12.         echo 错误:未找到 *.%suffix% 文件...
  13. )

  14. pause


  15. ::=================================================
  16. goto :EOF
  17. :filesel
  18. ::智能文件选择列表
  19. ::只有1个文件时自动选中,大于1≤100列表文件,>100则不再列表,改为手动输入;选择错误会自动返回选择菜单。
  20. ::列表菜单 空格键翻页,Q结束翻页
  21. set "suffix=%~1"
  22. set "errorlevel=0"
  23. for /f %%a in ('dir /a /b *.%suffix% 2^>nul ^| find /c /n /v ""') do set filenum=%%a
  24. if %filenum% EQU 0 ( set "errorlevel=1" & goto :EOF )
  25. if %filenum% GTR 100 (
  26.         echo 当前文件数目大于100,列表已带来不了多少便利
  27.         echo 请输入文件路径:
  28.         set /p selfile=
  29.         set selfile=!selfile:"=!
  30.         cls & goto :EOF )
  31. if %filenum% EQU 1 ( set select=1 ) else (
  32.         dir /a /b *.%suffix% | find /n /v "" | more & set /p select=请输入文件编号:
  33. )

  34. if %select% LSS 1          ( echo 只能输入 1 - %filenum% 之间的数字 && pause>nul && goto filesel )
  35. if %select% GTR %filenum% ( echo 只能输入 1 - %filenum% 之间的数字 && pause>nul && goto filesel )
  36. set /a var=%select%-1

  37. if not %var% LEQ 0 ( set "skip=skip=%var% " ) else set skip=
  38. for /f "%skip%delims=" %%b in ('dir /a /b *.%suffix% ^| find /v ""') do (
  39.         set "selfile=%%~fb" && cls & goto :EOF
  40. )
  41. ::=================================================
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-12-4 00:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表