【发布时间】:2014-04-22 21:37:10
【问题描述】:
我需要设置一个批处理文件,它将从预设目录复制文件,向下数层,使用批处理文件组织到当前目录中的文件夹中。
文件结构看起来像这样,
AAA
--0001
----纹理
------file1.tga
------file2.tga
------file3.tga
--0002
----材料...
--0003
----纹理 ...
--0004
----脚本...等
--0005 ...
--0006 ...
BBB
--0001 ...等
---纹理...等
CCC ...
DDD ...等
我想将每个纹理、材料、模型(等)文件夹移动到父项(例如 AAA)下的单个文件夹中,以便文件夹结构看起来像这样,所有子文件都完好无损,
AAA
--纹理
--材料
--models
--脚本
我一直在尝试使用类似这样的代码,目前还没有成功,
for /d %%a in ('dir /b .\AAA*\textures') 复制 "%%a" ".\AAA"
而通配符将位于“AAA”和“纹理”文件夹之间。这同样适用于所有其他第 2 代子文件夹。
我刚刚尝试了另一个版本的命令,它移动了文件,但没有移动文件夹。我正在从“AAA”文件夹中启动批处理文件。
for /d %%a in (0001) do copy "%%a" "."
我认为问题在于不知道如何将目录通配符正确输入到“for”命令中,这可能是一个非常简单的解决方法。
任何帮助将不胜感激。
【问题讨论】:
-
我建议你用
robocopy替换copy,它有更多的功能:technet.microsoft.com/en-us/library/cc733145(v=ws.10).aspx,它从Win 7开始就可用 -
所以移动文件夹的是
robocopy,而不是copy。虽然我倾向于询问/f "tokens=*"- 它有什么作用? -
没关系。刚研究了一下。谢谢!
标签: windows batch-file command-prompt