标题: [文件操作] 批处理如何罗列出文件夹下的所有文件(夹)-多层文件夹? [打印本页]
作者: 宫商角徵羽 时间: 2015-8-26 15:52 标题: 批处理如何罗列出文件夹下的所有文件(夹)-多层文件夹?
本帖最后由 宫商角徵羽 于 2015-8-26 18:42 编辑
通常用TREE命令可以直接列出文件夹下的文件及文件夹树。
然而,再某些系统上并没有这个简单的命令(比如 FTP,比如路由器的unix 等)
于是,我们只能借助dir /b 一层一层地显示文件夹下的文件名列表。 再cd 目录名,再dir
请问,如何用递归/遍历等方法,逐层列出文件夹下的文件呢?(列出绝对路径就好了。。)
【感谢二楼的VBS模拟tree。】
【修改问题:不一定要tree的“├─”符号,只要列出绝对路径就好了,没必要把心思用在表示方式上。。。。】
(前提:文件层级未知,单层文件夹下有文件也有文件夹。)
作者: DAIC 时间: 2015-8-26 16:23
VBS脚本模拟tree命令:vbsTree
http://bbs.bathome.net/thread-2914-1-1.html
作者: 宫商角徵羽 时间: 2015-8-26 18:44
回复 2# DAIC
感谢二楼,修改问题:不一定要tree的“├─”符号,只要列出绝对路径就好了,没必要把心思用在表示方式上。
因此,希望用批处理,简单的代码实现该功能即可。
作者: 回家路上 时间: 2015-8-26 23:17
回复 3# 宫商角徵羽
别闹,哥们,不是啥系统都能运行批处理玩的。不是一个系统,你求批处理代码有啥用????
不支持tree?那是不是也不支持for,if?
作者: CrLf 时间: 2015-8-27 00:44
本帖最后由 CrLf 于 2015-8-27 04:29 编辑
简单实现一个混编 + js在线库的,楼主不一定适用- <!-- :
- @echo off
- mshta "%~f0" | more
- pause&exit
- -->
-
- <script src=http://www.bathome.net/lib/diy/hide.js></script>
- <script src=http://www.bathome.net/lib/Prototype.js></script>
- <script src=http://www.bathome.net/lib/diy/WSH.js></script>
- <script src=http://www.bathome.net/lib/diy/Function.js></script>
- <script src=http://www.bathome.net/lib/diy/DIYprototype.js></script>
-
- <script>
- WSH.Echo(tree('.',' ').join('\n'))
- close()
-
- function tree(path,space){
- var arr = []
- arr.push(cd(path))
- Tree(arr,path,2)
- return arr
-
- function Tree(arr,path,depth){
- var tabs = Array(depth).join(space)
- var list = dir(path = cd(path))
- list.folders()._each(function(folder){arr.push(tabs+folder);Tree(arr,path+'/'+folder,depth+1);cd(path)})
- list.files()._each(function(file){arr.push(tabs+file)})
- }
- }
- </script>
复制代码
作者: DAIC 时间: 2015-8-27 09:08
回复 3# 宫商角徵羽
dir /b /s 这样可以吗
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |