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

Batch file 如何将文件从子目录移动到其父目录?,batch-file,cmd,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:\*\*.* 但这不起作用。您可以快速遍历子文件夹,一次遍历一条路径: @echo off for /f %%

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

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:\*\*.*

但这不起作用。

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

@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 ..
)

只需使用

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

for %%a in (*) do (move "%%a" ..)
确保在
move
的第一个参数上使用引号。批处理文件也将移动

尝试以下操作:

@echo off
FOR /D /R %%D in ("*") DO (
FOR %%f IN ("%%D\*.*") DO move "%%D\%%~nxf" "%%D\.."
)
pause
警告,这会将树中该批处理文件所在文件夹下的所有文档向上移动

只需使用:

对于('dir/s/b*.jpg')中的/F%i,请移动%i%~pi..\

或者这个。。。如果您在批处理文件中:

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

虽然有点晚,但它将帮助那些需要从两级深度文件夹结构中移动各自父文件夹中的文件的人:

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 ..
)
谢谢,
拉维,你是什么意思。我应该把它放在c:\?把它放在
c:\123\3
或任何你想使用移动
的地方。这是一种更为手动的方式。我不会在你的
c
驱动器中使用这些命令。因此,在这种情况下,我必须为每个子文件夹生成数百个批处理文件。我在寻找一个批量解决方案,它可以自动完成。你有自动方式吗?我不知道你需要数百个。此代码仅适用于大约10-20个用户。如果你想使用不同的程序,我可以发布一个关于
Python
的答案。我将代码放在c:\中,它只是生成了一长串类似于“c:\>(move“test”*)的错误。文件名、目录名或卷标语法不正确。不确定你的意思。我应该将批处理文件放在哪里?将此代码保存为新的纯文本文档,例如“doit.cmd”并运行它。请确保您希望在c:\中运行此操作,因为通常您不希望在\windows目录中像这样移动文件。1)创建一个新文件夹c:\thingstomove 2)将111、222和所有已组织的文件夹移动到此目录3)将doit.cmd放在该目录c:\thingstomove 4)完成后在那里运行5),将文件夹从c:\thingstomove移回c:\并删除文件夹c:\thingstomove(和批处理)。你在c:\上刮掉你的文件夹是我做的。它只是给了我一长串类似这样的错误系统找不到指定的文件。文件名、目录名或卷标语法不正确。'然后删除了bat文件。我应该将批处理文件放在哪个目录?C:,它将向上移动C:a文件夹中的所有文件。这包括例如C:\ProgramFiles\i see中的文件。如果我选择了我希望批量处理的文件,并将其放置在一个单独的子文件夹中。例如c:\runbatch并将批处理文件放在c:\runbatch中。如果我这样做,它会起作用吗?是的,在那种情况下它会起作用。您将批处理文件放在文件夹中,希望该文件夹下的所有文件都向上移动。在这种情况下,您应该通过单击该文件夹左侧的复选框将其标记为正确,以便查找该文件的人可以找到它