Board logo

标题: [文件操作] 批处理如何罗列出文件夹下的所有文件(夹)-多层文件夹? [打印本页]

作者: 宫商角徵羽    时间: 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在线库的,楼主不一定适用
  1. <!-- :
  2. @echo off
  3. mshta "%~f0" | more
  4. pause&exit
  5. -->
  6. <script src=http://www.bathome.net/lib/diy/hide.js></script>
  7. <script src=http://www.bathome.net/lib/Prototype.js></script>
  8. <script src=http://www.bathome.net/lib/diy/WSH.js></script>
  9. <script src=http://www.bathome.net/lib/diy/Function.js></script>
  10. <script src=http://www.bathome.net/lib/diy/DIYprototype.js></script>
  11. <script>
  12. WSH.Echo(tree('.','   ').join('\n'))
  13. close()
  14. function tree(path,space){
  15. var arr = []
  16. arr.push(cd(path))
  17. Tree(arr,path,2)
  18. return arr
  19. function Tree(arr,path,depth){
  20. var tabs = Array(depth).join(space)
  21. var list = dir(path = cd(path))
  22. list.folders()._each(function(folder){arr.push(tabs+folder);Tree(arr,path+'/'+folder,depth+1);cd(path)})
  23. list.files()._each(function(file){arr.push(tabs+file)})
  24. }
  25. }
  26. </script>
复制代码

作者: DAIC    时间: 2015-8-27 09:08

回复 3# 宫商角徵羽


dir /b /s 这样可以吗




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