我需要设置一个批处理文件,它将从预设目录中复制文件,向下几层,使用批处理文件组织到当前目录中的一个文件夹中。
文件结构看起来像这样,
3
——0001
——纹理
——file1.tga
——file2.tga
——file3.tga
——0002
——材料…
——0003
——纹理…
——0004
——脚本…等
——0005…
——0006…
BBB
——0001…等
——材质……等
CCC…
DDD……等
我想将每个纹理,材料,模型(等)文件夹移动到父项目下面的单个文件夹中(例如:AAA),以便文件夹结构看起来像这样,所有子文件都是完整的,
3
——纹理
——材料
——模型
——脚本
我一直在尝试使用类似于此的代码,但尚未成功,
/d % %的("dir/b AAA * 纹理。")做副本"% %"。 AAA"
而通配符会在'AAA'和'textures'文件夹之间。这同样适用于所有其他第二代子文件夹。
我刚刚尝试了另一个版本的命令,它移动了文件,但没有移动文件夹。我从"AAA"文件夹中启动批处理文件。
for/d %%a in (0001) do copy "%%a"。"
我认为问题是不知道如何正确地将目录通配符输入到"for"命令中,这可能是一个非常简单的修复。
任何帮助都将非常感激。
将此代码放入.bat
文件中,并在AAA目录下运行
for /f "tokens=*" %%a in ('dir /b') do robocopy %%a . /s /move
-
for /f "tokens=*"
表示将处理'dir /b'
返回的所有值 -
dir b
将以裸格式列出目录 -
robocopy
是主命令,它将执行复制工作。 - 源
%%a
是包含迭代子文件夹名称{0001textures
,0002materials
,…}的变量 - 目的地
.
表示复制到工作目录,在我们的例子中是AAA - 选项
/s
搜索子目录 - 选项
/move
移动而不是复制