Board logo

标题: [文件操作] 如何批处理提取子文件夹名称? [打印本页]

作者: 228630386    时间: 2024-6-21 13:47     标题: 如何批处理提取子文件夹名称?

本帖最后由 228630386 于 2024-6-27 09:48 编辑

文件有A、B、C、D等多个文件夹,目录下有多个子文件夹,如何批量提取子文件夹名称在TXT中?

A目录下有:
111165565664
546498789454
454789784454

B目录下有:
546464212131
646484212131
454554812121

C目录下有:
065656545455
656532326556
565656565656
565656565689

以此类推,生成结果即多个子文件夹名称生成TXT中,如下:
111165565664
546498789454
454789784454
546464212131
646484212131
454554812121
065656545455
656532326556
565656565656
565656565689
作者: aloha20200628    时间: 2024-6-21 15:37

本帖最后由 aloha20200628 于 2024-6-21 15:40 编辑

回复 1# 228630386

假设当前目录有直属目录a,b,c,d等,以下代码存为test.bat,置于当前目录中运行,结果将获取这些直属目录所包含的全部子目录名列表至 "子目录名列表.txt"
  1. @echo off
  2. (for /d %%D in (*) do for /f "delims=" %%d in (' dir /b/s/ad "%%D" ') do echo,%%~nxd)>"子目录名列表.txt"
  3. exit/b
复制代码

作者: dreamer    时间: 2024-6-21 22:13

回复 1# 228630386
這樣的效果嗎?
  1. for /d /r %%i IN (*) do echo %%~ni  >>list.txt
复制代码

作者: ppll2030    时间: 2024-6-21 23:34

回复 1# 228630386


    直接 tree >list.txt 不就可以了嘛
作者: 228630386    时间: 2024-6-27 09:45

回复 3# dreamer


    运行之后只生成TXT,没有结果的?
作者: qixiaobin0715    时间: 2024-6-27 10:13

  1. @echo off
  2. (for /f "delims=" %%i in ('dir /b /ad') do (
  3.     pushd "%%i"
  4.     for /f "delims=" %%j in ('dir /b /ad') do (
  5.         echo,%%j
  6.     )
  7.     popd
  8. ))>123.txt
复制代码

作者: aloha20200628    时间: 2024-6-27 15:09

本帖最后由 aloha20200628 于 2024-6-27 15:52 编辑

回复 1# 228630386

2楼代码再简化一步...
  1. @echo off
  2. (for /d %%D in (*) do for /d %%d in ("%%D\*") do echo,%%~nxd)>"子目录名列表.txt"
  3. pause&exit/b
复制代码

作者: ppll2030    时间: 2024-6-27 17:31

保存为bat文件,与ABC文件夹放在一起。
脚本只罗列ABC文件夹下的一级子目录,不再罗列111165565664等数字文件夹下的目录
  1. @echo off
  2. (for /d %%D in (*) do for /f "delims=" %%d in ('dir /b /ad "%%D"') do echo,%%~nxd)>"子目录列表.txt"
  3. exit /b
复制代码

作者: 228630386    时间: 2024-6-28 12:42

回复 8# ppll2030


    为什么运行后没有反应的。
作者: 228630386    时间: 2024-6-28 12:43

回复 7# aloha20200628


    生成的结果还是有链接在TXT里的。
作者: ppll2030    时间: 2024-6-28 12:53

本帖最后由 ppll2030 于 2024-6-28 13:19 编辑

回复 9# 228630386


    直接生成 子目录列表.txt 了。


作者: 228630386    时间: 2024-6-28 14:05

回复 11# ppll2030


    生成TXT文件后,目录是有链接的。
作者: 228630386    时间: 2024-6-28 16:31

回复 11# ppll2030


    奇怪了,我生成的效果不是你GIF哪样。
作者: 77七    时间: 2024-6-28 16:40

如果使用管理员权限执行,而未切换工作路径,测试没有得到结果。如果使用 for /d 则不能获取 含有隐藏属性的文件夹。

以下代码保存为ansi或者utf-8。如果不行,可尝试右键使用管理员权限执行。
  1. @echo off
  2. cd /d "%~dp0"
  3. (for /f "delims=" %%d in ('dir /b /ad') do (
  4. for /f "delims=" %%e in ('dir /b /ad "%%d\*"') do (
  5. echo %%e
  6. )
  7. ))>"list.txt"
  8. pause
复制代码

作者: aloha20200628    时间: 2024-6-28 16:46

本帖最后由 aloha20200628 于 2024-6-28 17:14 编辑

回复 10# 228630386

假设a,b,c,d等目录均在 d:\test 主目录下,请把7楼的批处也放在 d:\test 这个主目录下运行,即可获得一楼示例的结果
7楼代码已用一楼示例的目录结构测试通过





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