无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 3360|回复: 1

[原创] 智能文件选择列表

[复制链接]
发表于 2017-8-29 18:36:21 | 显示全部楼层 |阅读模式

本来这个原先是为 @有阴也有阳 写的,不过后来发现,自己的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
复制代码

评分

参与人数 2无忧币 +10 收起 理由
zmac2007 + 5
2305753123 + 5 很给力!

查看全部评分

发表于 2017-8-29 23:02:01 | 显示全部楼层
顶一个!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 04:11

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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