Board logo

标题: [文件操作] [分享]gawk以tree/f的输出结果为依据重建文件结构 [打印本页]

作者: hfxiang    时间: 2022-12-15 19:53     标题: [分享]gawk以tree/f的输出结果为依据重建文件结构

本组合脚本将tree/f的输出结果以重建文件夹及空文件的形式重建整个文件结构

  1. BEGIN {
  2. Dir_No = 0
  3. Dir = "."
  4. Cha_pos = 0
  5. Dir_FCP = 0
  6. }
  7. /^[│├└ ]+[^│├└ ].*$/ {
  8. if ($0 ~ /^.*[├└]/) {
  9. Cha_pos = match($0, /[├└]/)
  10. if (Cha_pos > Dir_FCP) {
  11. Dir_No++
  12. No_pos[Cha_pos] = Dir_No
  13. }
  14. if (Cha_pos < Dir_FCP) {
  15. Dir_No = No_pos[Cha_pos]
  16. }
  17. Dir_FCP = Cha_pos
  18. Folder[Dir_No] = gensub(/^.*[├└]─(.+)$/, "\\1", "g", $0)
  19. Dir = "."
  20. for (i = 1; i <= Dir_No; i++) {
  21. Dir = Dir "\\" Folder[i]
  22. }
  23. print "mkdir \"" Dir "\">nul 2>&1"
  24. } else {
  25. file_name = Dir "\\" (gensub(/^([│ ]+)([^│ ].*)$/, "\\2", "g", $0))
  26. print "echo;2>\"" file_name "\""
  27. }
  28. }
复制代码
以ANSI编码格式保存为tree.awk

  1. gawk -f.\tree.awk tree.txt|cmd.exe
复制代码
以ANSI编码格式保存为tree.bat

在命令行窗口执行:
  1. tree /f>tree.txt
复制代码
以获取tree.txt

下载gawk(http://bcn.bathome.net/tool/4.1.0/gawk.exe

将gawk.exe、tree.awk、tree.txt、tree.bat复制到欲重建文件结构的子文件夹(如D:\test),双击tree.bat执行后即可重建整个文件结构(注:重建后所有的文件均为空文件)




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