如何将树目录转换为单级目录

列昂·阿姆斯特朗(Leon Armstrong)

这个问题可能很困惑,最好显示一些例子。我有一个文件夹,其中包含许多子目录,这些子目录可能是多个级别。下面的结构显示该文件夹,所有文件夹都包含自己的文件。

mainFolder
|--a
|--|--ab
|--|--ac
|--|--ad
|--b
|--b
|--|-cd
|--d

上面是mainFolder的树结构。我正在尝试编写一个批处理文件,该文件能够将整个树转换为单个级别的结构。

--a
--ab
--ad
--b
--c
--cd
--d

以上是预期的输出。所有文件应位于其自己的文件夹中。

setlocal EnableDelayedExpansion 

set "targetPath=%~dp0mainFolder"

for /r "%targetPath%" %%i in (.) do (

     echo %%i

)

pause

这是我当前的代码,它能够循环显示目录的绝对路径

LotPings

存在不一致之处:--cdest中缺少,没有--ac

源代码树:

> tree
└───mainFolder
    ├───a
    │   ├───ab
    │   ├───ac
    │   └───ad
    ├───b
    ├───c
    │   └───cd
    └───d

提供的主文件夹位于该单个cmdline的驱动器根目录中:

@for /r "\mainfolder" %A in (.) do @for /f "tokens=5 delims=\" %B in ("%A") do @move "%A" "\mainFolder"

将产生此目标树:

> tree
└───mainFolder
    ├───a
    ├───ab
    ├───ac
    ├───ad
    ├───b
    ├───c
    ├───cd
    └───d

如果不是,则将令牌的值从5调整为与目录级别匹配。
在批处理文件中,将所有百分号加倍%%

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章