中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 建立文件列表(txt)的问题[高手进]
作者:
标题: 建立文件列表(txt)的问题[高手进] 上一主题 | 下一主题
v215com
新手上路





积分 14
发帖 4
注册 2006-12-2
状态 离线
『楼 主』:  建立文件列表(txt)的问题[高手进]

需将一个目录下所有文件制成文件列表(txt格式),包含子文件夹(要树型格式),文件列表要按字母顺序排列的,并且要“列出文件或文件夹的大小,以Kb记”。(不要显示文件日期或其它属性,只要名称和大小!!)请写出cmd下可输入的完整的命令。
要像这样的:
├—宇佐美真纪
│ │ 爱琴海[宇佐美真纪][1][完].rar
│ └—樱花恋》[宇佐美真纪]全一册

├—安留安崎(蛮可爱的)
│ └—B-Wanted》[安留安崎]
│ Vol_01.rar

2007-9-26 06:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  

利用for /R和tree命令遍历出的文件顺序是一定的原理,写了这个。

如果目录下面的文件比较多,建议不要用此方法,因为跑起来很慢!
希望有高手可以优化此脚本。
@rem 关闭命令行回显并打开延迟扩展
@echo %bg% off & SetLocal EnableDelayedExpansion

rem 对当前目录及其子目录中的每个文件大小进行索引
set tnum=1
for /r .\ %%a in (*) do (
        set "file!tnum!_%%~nxa=%%~za"
        set /a tnum+=1
)

rem 处理TREE的输入并显示结果
set tnum=1

echo %cd%
echo ************************************************
for /F "delims=" %%a in ('tree /F^|more +3') do (
        echo %%a|findstr /R "├ └" >nul && (
                echo\%%a
        ) || (
                echo %%a|findstr /R /C:"^│[ ]*$" >nul 2>nul && (
                        echo\%%a
                ) || (
                for /f "delims=" %%c in ("%%a") do (
                        set string=%%c
                        set string=!string:│=!
                        for /f "tokens=* delims= " %%d in ("!string!") do set fname=%%d
                        if not "!fname!"=="" (
                                call echo\%%a [%%file!tnum!_!fname!%%]
                                set /a tnum+=1
                        ) else (echo\%%a)
                )
                )
        )
)


2007-9-26 12:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
v215com
新手上路





积分 14
发帖 4
注册 2006-12-2
状态 离线
『第 3 楼』:  

谢谢版版了

2007-9-27 01:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: