标题: [文件操作] 如何批处理提取子文件夹名称? [打印本页]
作者: 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"
- @echo off
- (for /d %%D in (*) do for /f "delims=" %%d in (' dir /b/s/ad "%%D" ') do echo,%%~nxd)>"子目录名列表.txt"
- exit/b
复制代码
作者: dreamer 时间: 2024-6-21 22:13
回复 1# 228630386
這樣的效果嗎?- 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
- @echo off
- (for /f "delims=" %%i in ('dir /b /ad') do (
- pushd "%%i"
- for /f "delims=" %%j in ('dir /b /ad') do (
- echo,%%j
- )
- popd
- ))>123.txt
复制代码
作者: aloha20200628 时间: 2024-6-27 15:09
本帖最后由 aloha20200628 于 2024-6-27 15:52 编辑
回复 1# 228630386
2楼代码再简化一步...
- @echo off
- (for /d %%D in (*) do for /d %%d in ("%%D\*") do echo,%%~nxd)>"子目录名列表.txt"
- pause&exit/b
复制代码
作者: ppll2030 时间: 2024-6-27 17:31
保存为bat文件,与ABC文件夹放在一起。
脚本只罗列ABC文件夹下的一级子目录,不再罗列111165565664等数字文件夹下的目录- @echo off
- (for /d %%D in (*) do for /f "delims=" %%d in ('dir /b /ad "%%D"') do echo,%%~nxd)>"子目录列表.txt"
- 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。如果不行,可尝试右键使用管理员权限执行。
- @echo off
- cd /d "%~dp0"
- (for /f "delims=" %%d in ('dir /b /ad') do (
- for /f "delims=" %%e in ('dir /b /ad "%%d\*"') do (
- echo %%e
- )
- ))>"list.txt"
- 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://bbs.bathome.net/) |
Powered by Discuz! 7.2 |