У меня есть файлы, содержащие в

C:\foldername1\Files\soandso1.mkv C:\foldername2\Files\soandso2.mp4 C:\foldername3\Files\soandso3.avi

Я хочу переместить .mkv, .mp4 и .avi обратно в родительскую папку, которая называется foldername1, 2, 3.

Folderame будет отличаться для каждого файла soandso в. По сути, я хочу избавиться от папки "Files" и разместить медиа-файлы в foldername1, 2 и 3.

Есть ли пакетная команда для этого?

1 ответ1

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:\, он просмотрит каждую папку верхнего уровня на диске и, если она содержит подпапку Files , переместит любые файлы AVI/MKV/MP4, найденные на один уровень (т.е. уровня папки), затем удалите подпапку Files .

Если какие-либо другие файлы существуют в папке « Файлы», папка не будет удалена. Вы можете использовать rd /s /q если хотите принудительно удалить. Кроме того, Move будет предлагать вам каждый раз перезаписывать дубликаты (если есть), что можно сделать автоматически, используя вместо этого move /y .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .