如何将目录中的多个文件夹移动到同一目录中的另一个文件夹中

时间:2016-11-12 07:28:46

标签: batch-file

我在目录中有一系列文件夹:

C:\directory\folderx
C:\directory\foldery
C:\directory\folderz
etc.

这些文件夹总共大约有一千个,我的目标是移动大约一半。

我想将带有内容的文件夹移动到同一目录中的另一个文件夹中(使用文件listing.bat来解析文件夹标题并对它们进行排序,因此我已经获得了{{}中感兴趣的文件夹的最终列表1}}格式)。

.txt

这样结果将如下所示:

C:\directory\folderq

我不确定以下批处理命令是否适用于移动多个文件夹,我实际上担心它只会导致C:\directory\folderq\folderx C:\directory\folderq\foldery C:\directory\folderq\folderz etc. 错误地移入folderx并且中止命令:

foldery

3 个答案:

答案 0 :(得分:1)

要将C:\directory中的所有文件夹移至C:\directory\folderq,您可以使用以下内容:

for /D %%D in ("C:\directory\*.*") do (
    if /I not "%%~nxD"=="folderq" (
        move "%%~D" "C:\directory\folderq"
    )
)

if查询阻止尝试将folderq移入自身。

如果您要在文本文件C:\directory\list.txt中移动文件夹列表,请执行以下操作...:

C:\directory\folderx
C:\directory\foldery
C:\directory\folderz

...,你可以使用这段代码:

for /F "usebackq delims=" %%D in ("C:\directory\list.txt") do (
    move "%%~D" "C:\directory\folderq"
)

答案 1 :(得分:0)

该命令不能以这种方式工作,您可以指定要移动的目录或文件,但不能指定多个目录。所以你可以为每个目录调用一次命令:

move C:\directory\folderx C:\directory\folderq
move C:\directory\foldery C:\directory\folderq

或者使用一个非常简单的脚本(moveDirs.bat)来移动多个目录:

ECHO OFF
for /D %%x in (%*) do move "%%~x" "C:\directory\folderq"

您可以使用以下代码调用此脚本:moveDirs.bat C:\directory\folderx C:\directory\foldery

答案 2 :(得分:0)

假设您使用的是Windows,最简单的方法就是将目录拖放到新文件夹中。如果它位于同一个文件浏览器窗口中,则默认情况下会移动。如果没有,则在拖动时单击SHIFT键而不是副本。