如何将文件从子目录移动到其父目录?

时间:2015-12-27 22:55:50

标签: batch-file cmd

我有像这样组织的文件夹中的文件

c:\111\1\file.jpg
c:\222\2\file.jpg
c:\333\3\file.jpg

我正在尝试将文件移动到各自的父文件夹中。所以他们会这样放置。

c:\111\file.jpg
c:\222\file.jpg
c:\333\file.jpg

我试过

for %F in (c:\*\*\*.*) do move /Y %F c:\*\*.*

但那没用。

5 个答案:

答案 0 :(得分:1)

您可以快速遍历子文件夹,一次一条路径:

@echo off
for /f %%i in ('dir /a:d /b') do (
    cd "%%i"
    for /f %%j in ('dir /a:d /b') do (
        move "%%j" ..\
    )
    cd ..
)

答案 1 :(得分:0)

只需使用..

将此批处理文件放在要执行操作的文件的目录中。

for %%a in (*) do (move "%%a" ..)

确保在move的第一个参数上使用引号。 批处理文件也将移动

答案 2 :(得分:0)

试试这个:

@echo off
FOR /D /R %%D in ("*") DO (
FOR %%f IN ("%%D\*.*") DO move "%%D\%%~nxf" "%%D\.."
)
pause

警告,这会将此批处理文件位于1目录下的文件夹下的树中的所有文档移动

答案 3 :(得分:0)

只需使用:

FOR /F %i IN ('dir /s /b *.jpg') DO move %i %~pi..\

或者这个......如果您在BATCH文件中:

FOR /F %%i IN ('dir /s /b *.jpg') DO move %%i %%~pi..\

答案 4 :(得分:0)

有点晚了,但它会帮助那些需要从两个级别的深层文件夹结构中移动各自父文件夹中的文件的人:

for /f %%i in ('dir /a:d /b') do (
    cd "%%i"
    for /f %%j in ('dir /a:d /b') do (
        move "%%j"\* .
        cd "%%j"
        for /f %%k in ('dir /a:d /b') do (
            move "%%k"\* ..\
        )
        cd ..
    )
    cd ..
)

谢谢, 拉维