我知道 for 循环例如
for /r %f in (*) do @move %f .
和
for /r %f in (.) do @move %f .
但我似乎找不到适合我的情况的代码。假设我有许多如下所示的目录:
Folder 1
Folder 2
File 1
File 2
File 3
Folder 3
File 4
Folder 4
Folder 5
File 5
File 6
File 7
Folder 6
File 8
我想将文件 4 放入文件夹 2,将文件 8 放入文件夹 5,依此类推,我该怎么做?对于这种情况,我有不少目录看起来像这样,因此手动进入每个目录是行不通的。最简单的解决方案是什么,最好使用批处理?最终结果希望如下所示:
Folder 1
Folder 2
File 1
File 2
File 3
File 4
Folder 4
Folder 5
File 5
File 6
File 7
File 8
答案1
这组命令应该将目录中的所有文件放入顶级目录 - 因此文件夹 1 下的所有文件将直接放入文件夹 1 中,文件夹 4 下的所有文件将直接放入文件夹 4 中。
您需要对其进行修改才能获得问题中描述的确切设置,但希望这是一个好的开始。另外,我对批处理脚本还比较陌生,所以在尝试对真实数据进行任何操作之前,先针对一些不重要的临时目录和文件进行测试。
dir /ad /b *your current directory* > dirs.txt
for /F "eol=" %i in (dirs.txt) do @echo dir /a-d /b /s %i ^> %i.txt >> script.bat
.\script.bat
for /F "eol=" %j in (dirs.txt) do for /F "eol=" %i in (%j.txt) do @move %i %j