Board logo

标题: [其他] [已解决]批处理获取指定层级目录 [打印本页]

作者: zhoubin    时间: 2024-10-22 08:30     标题: [已解决]批处理获取指定层级目录

本帖最后由 zhoubin 于 2024-10-22 16:22 编辑

H盘某文件夹目录:
  1. H:\我的备份\装机必备\网络工具\下载工具\Internet Download Manager\Internet Download Manager6.40.11(IDM)
  2. H:\我的备份\装机必备\网络工具\下载工具\百度云管家
  3. .
  4. .
  5. .
  6. .
复制代码
目录很多,不再列举了
想获取到四级目录就可以了:
  1. H:\我的备份\装机必备\网络工具\下载工具
  2. .
  3. .
  4. .
  5. .
复制代码
目录很多,不再列举
批处理怎么写,谢谢坛友们

2楼、3楼、5楼的代码,都可以列出指定层级的目录
作者: qixiaobin0715    时间: 2024-10-22 09:08

本帖最后由 qixiaobin0715 于 2024-10-22 09:11 编辑
  1. dir /s /b /ad|findstr "\\.*\\.*\\.*\\.*"|findstr /v "\\.*\\.*\\.*\\.*\\.*"
复制代码

作者: aloha20200628    时间: 2024-10-22 09:15

回复 1# zhoubin
  1. dir/b/s/ad|findstr ".:[^\\]*\\[^\\]*\\[^\\]*\\[^\\]*\\[^\\]*$"
复制代码

作者: zhoubin    时间: 2024-10-22 09:58

本帖最后由 zhoubin 于 2024-10-22 10:52 编辑

谢谢,稍候,我测试一下,谢谢

64位Win10下测试,楼上两位的都可以用,谢谢楼上两位,谢谢!!
作者: aloha20200628    时间: 2024-10-22 12:03

回复 4# zhoubin

再给一个匹配不同目录级数(绝对路径)的通用版本...
核心代码如下》调整代码第二行中的数字 4 即为目录级数
  1. @echo off &setlocal enabledelayedexpansion
  2. set "p=.:[^\\]*" &for /l %%n in (1,1,4) do set "p=!p!\\[^^\\]*"
  3. dir/b/s/ad|findstr "!p!$"
  4. endlocal&pause&exit/b
复制代码
示例代码如下》
  1. @echo off &setlocal enabledelayedexpansion
  2. echo,第2级
  3. set "p=.:[^\\]*" &for /l %%n in (1,1,2) do set "p=!p!\\[^^\\]*"
  4. dir/b/s/ad|findstr "!p!$"
  5. echo,第3级
  6. set "p=.:[^\\]*" &for /l %%n in (1,1,3) do set "p=!p!\\[^^\\]*"
  7. dir/b/s/ad|findstr "!p!$"
  8. echo,第4级
  9. set "p=.:[^\\]*" &for /l %%n in (1,1,4) do set "p=!p!\\[^^\\]*"
  10. dir/b/s/ad|findstr "!p!$"
  11. endlocal&pause&exit/b
复制代码

作者: zhoubin    时间: 2024-10-22 14:15

顺便再问一下:
同时列出4级目录下的文件,要怎么写呢,谢谢您!
作者: qixiaobin0715    时间: 2024-10-22 14:34

把ad改为a-d
作者: zhoubin    时间: 2024-10-22 14:55

谢谢,有用,谢谢了




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2