批量处理多个文件到一个文件夹

时间:2014-09-12 07:54:49

标签: file batch-file syntax directory move

我希望做一个简单的批处理过程,将同一目录的3个不同子目录中的日志文件复制到其他地方的另一个文件夹。

我的代码目前是:

for /r c:\users\...\Unzipped %%g in (*.log) do move /-y "c:\users\...\Unzipped\" "c:\users\...\Log_Files"

我继续收到10条回复,说我的代码语法是正确的,这意味着我的理解至少第一部分是正确的。

问题在于移动命令的原点部分。怎么可能在本质上说“来自3个不同的子文件夹”?

2 个答案:

答案 0 :(得分:1)

原始命令

for /r "c:\root\folder" %%g in (*.log) do move /-y "%%~fg" "c:\target\folder"

也就是说,对于每个日志文件,递归地在指示的起始文件夹下,将文件(%%~fg%%g引用的文件的完整路径)移动到目标文件夹

如果要直接指示必须从中获取文件的三个源文件夹,则

for %%g in ("c:\root\f1\*.log" "c:\root\f2\*.log" "d:\somewhere\*.log"
) do move /-y "%%~fg" "c:\target\folder"

但在这种情况下,您不能在/r命令中包含for开关进行递归搜索。

答案 1 :(得分:0)

扫描所有子文件夹并搜索* .log

for /f %%f in ('dir /s/b c:\users...\Unzipped\*.log') do move /-y %%f "c:\users...\Unzipped\Logfiles"