批处理文件将底部文件夹移动到指定位置

时间:2014-02-22 00:54:43

标签: windows batch-file

我有一个目录结构,其中包含按关联ID

组织到文件夹中的文件
..\abc\STORAGE\123
..\abc\STORAGE\234
..\xyz\STORAGE\345
..\xyz\STORAGE\456

我希望将所有底部子文件夹及其所有内容复制到一个新目录中,以便之后我将拥有:

..\SomeNewDir\123
..\SomeNewDir\234
..\SomeNewDir\345
..\SomeNewDir\456

如何使用批处理脚本完成此操作?

2 个答案:

答案 0 :(得分:0)

测试:在包含abcxyz文件夹的文件夹中启动它。

@echo off
for /d %%a in (*) do xcopy "%%a\storage\*.*" "c:\somenewdir\" /s/h/e/k/f/c

答案 1 :(得分:0)

@echo off
    setlocal enableextensions

    set "sourceRoot=%cd%"
    set "target=d:\test"

    for /r /d %%a in (*) do (
        set "bottom=1"
        for /d %%b in ("%%~fa\*") do set "bottom="
        if defined bottom (
            echo move "%%~fa" "%target%"
        )
    )

这将搜索指定源的每个子分支中的最后一个目录,与名称无关,并移动(当输出到控制台正确时,删除echo)子目录到目标文件夹