在文件夹中的所有目录的路径中插入一个目录

Inserting a directory in path for all directories in a folder

我有这个文件夹结构:

mainDir
----dira
--------(files/folders)
----dirb
--------(files/folders)
----dirc
--------(files/folders)
...
...
...
----dirz
--------(files/folders)

我想遍历 mainDir 下的所有目录,在 dirMain 下的每个目录中创建一个名为 xyz 的文件夹,并从 dir# 移动所有内容(其中 # 是 a,b ... z) 到 xyz(在各自的目录下)。

结果如下所示:

mainDir
----dira
--------xyz
------------(files/folders)
----dirb
--------xyz
------------(files/folders)
----dirc
--------xyz
------------(files/folders)
...
...
...
----dirz
--------xyz
------------(files/folders)

是否可以使用批处理文件,因为我有太多文件夹无法手动执行此操作。

简单地计算出您需要对每个文件夹执行的步骤。您可以使用通配符批量移动或重命名一组文件。但文件夹必须单独移动或重命名。

  • 创建 xyz 文件夹
  • 将所有文件移动到 xyz 文件夹
  • 将每个子文件夹(xyz 除外)移动到 xyz 文件夹

然后使用 FOR /D 循环对每个文件夹执行这些步骤。

@echo off
for /d %%F in (main\*) do (
  pushd "%%F"
  md "xyz"
  move * "xyz" >nul
  for /d %%G in (*) do if "%%G" neq "xyz" move "%%G" "xyz" >nul
  popd
)