如何使用batch file中的目录通配符移动或复制文件夹?

我需要设置一个batch file,将文件从一个预设的目录下复制几个层,使用batch file组织到当前目录中的一个文件夹中。

文件结构看起来像这样,

AAA
–0001
—-纹理
—— file1.tga
—— file2.tga
—— file3.tga
–0002
—-材料…
–0003
—-纹理…
–0004
—-剧本…等等
–0005 …
–0006 …
BBB
–0001 …等
—纹理…等
CCC …
DDD …等

我想将每个纹理,材质,模型(等)文件夹移动到父项下的单个文件夹(例如AAA),以便文件夹结构如下所示,所有子文件都是圆形的,

AAA
–textures
–materials
– 楷模
–scripts

我一直在尝试使用类似于此的代码,迄今还没有成功,

('dir / b。\ AAA * \ textures')中的/ d %% a复制“%% a”“。AAA”

通配符将在“AAA”和“纹理”文件夹之间进行。 每隔一代的第二代子文件夹也一样。

我只是尝试了移动文件的另一个版本的命令,而不是文件夹。 我从“AAA”文件夹中启动batch file。

(0001)中的/ d %% a复制“%% a”“。”

我认为这个问题不知道如何正确地input目录通配符到“for”命令,这可能是一个非常简单的修复。

任何帮助将不胜感激超越测量。

把这个代码放在一个.bat文件中,然后在你的AAA目录下运行它

 for /f "tokens=*" %%a in ('dir /b') do robocopy %%a . /s /move 
  • for /f "tokens=*"意味着将会处理所有由'dir /b'返回的值
  • dir \b将以裸格式列出目录
  • robocopy是主要的命令,它将执行复制作业。
  • %%a是包含迭代子文件夹名称的变量{ 0001\textures0002\materials ,…}
  • 目的地. 意味着复制到工作目录,在我们的情况下是AAA
  • 选项来搜索子目录
  • 选项/move移动而不是复制