批处理命令移动特定扩展名的所有文件

批处理命令移动特定扩展名的所有文件

我有一个使用 7zip 提取所有 rar 文件的脚本,这很棒。

唯一的问题是我必须手动浏览文件夹并移动 .avi 或 .mkv 文件。

我目前正在使用的脚本

FOR /D /r %%F in ("*") DO (
    pushd %CD%
    cd %%F
        FOR %%X in (*.rar *.zip) DO (
            "C:\Program Files\7-zip\7z.exe" x %%X
        )
    popd
)

我当前的设置:

D:\rared\loads 文件夹名称,然后我将它们全部移动到 D:\rared\extracted

有没有办法修改第一个脚本或者只写另一个脚本将所有子目录中的所有文件移动到解压的文件夹中?

答案1

尝试更改现有的 7z 命令行,添加 -oD:\rared\extracted

因此"C:\Program Files\7-zip\7z.exe" x %%X
变成 "C:\Program Files\7-zip\7z.exe" x %%X -oD:\rared\extracted

答案2

抱歉我来晚了。下面是我要做的。我将最小文件大小设置为 12,345KB,以避免所有那些烦人的样本剪辑(根据需要进行调整)。我绝对没有办法测试它,因为我使用 rar.exe,e/x 应该无关紧要。让我知道这是否适合您,或者您是否想要其他功能,或者您是否有任何?

SetLocal
Set BaseDir     =D:\Rars\
Set TempDir     =D:\rared\extracted\
Set GoodStuff   =D:\GoodStuffToWatch\
Set MinFileSize =12345

FOR /R %BaseDir% %%F in (*.RAR *.ZIP) DO "C:\Program Files\7-zip\7z.exe" x "%%~fF" -o%TempDir%
FOR /R %TempDir% %%G in (*.AVI *.MKV) DO IF %%~zG GTR %MinFileSize% Move "%%~fG" %GoodSTufF%

相关内容