为目录内的每个文件创建一个文件夹,并将文件移动到相应的文件夹中

为目录内的每个文件创建一个文件夹,并将文件移动到相应的文件夹中

我有一组分布在整个目录中的文件,需要将它们移动到具有同等标题的文件夹中。

Original Structure:
Folder A
 A1
  Dog.pdf
 A2
  Cat.tif

Desired structure:
Folder A
 A1
  Dog
   Dog.pdf
 A2
  Cat
   Cat.tif

我尝试使该脚本递归,以便它适用于整个目录,但最终将文件嵌套在无限的文件夹中:

@echo & Title %~n0
cd /D "%~dp0"
for /r %%i in (*) do (
 if not "%%~DPni" == "%~DPn0" (
  md "%%~DPni" && move "%%~i" "%%~DPni"
 )
)

有没有办法让它对目录及其所有子文件夹起作用,在文件所在的位置创建一个文件夹,然后将该文件移动到该文件夹​​中?

相关内容