批量移动不同类型的文件到不同的文件夹名称

批量移动不同类型的文件到不同的文件夹名称

我有包含的文件

C:\文件夹名称1\Files\soandso1.mkv C:\文件夹名称2\Files\soandso2.mp4 C:\文件夹名称3\Files\soandso3.avi

我想将 .mkv、.mp4 和 .avi 移回其父文件夹,即 foldername1、2、3。

每个 soandso 文件所在的文件夹名称都会不同。基本上,我想删除“文件”文件夹,并将媒体文件放在文件夹名称 1、2 和 3 中。

有没有这个的批处理命令?

答案1

我快速整理了一些东西;现在没有时间进行广泛测试:

@echo off
for /f "delims=" %%d in ('dir /b/ad-s-h') do (
    if exist "%%d\Files" (
        pushd "%%d\Files"
        if exist *.avi move *.avi ..
        if exist *.mkv move *.mkv ..
        if exist *.mp4 move *.mp4 ..
        popd
        rd "%%d\Files"
    )
)

如果你在 C:\ 中运行它,它将查看驱动器上的每个顶级文件夹,并查看其中是否包含文件子文件夹,它会将找到的所有 AVI/MKV/MP4 文件上移一层(即移至顶层文件夹),然后删除文件子文件夹。

如果存在任何其他文件文件该文件夹将不是删除。rd /s /q如果您想强制删除,可以使用。此外,移动每次都会提示您覆盖重复项(如果有),可以使用来自动完成move /y

相关内容