#windows #batch-file #audio
#Windows #пакетный файл #Аудио
Вопрос:
и спасибо за любую помощь. Я попытался найти пример того, как выполнить следующее, но ничего не нашел. Буду признателен за любую помощь, поскольку у меня нет опыта создания файла BAT!
У меня есть сторонняя программа, которая записывает аудио и генерирует из него файл .mp3. Каждые 24 часа он создает новую папку и начинает процесс заново. Проблема в том, что даже малейший фрагмент звука создаст файл .mp3. У меня остались тысячи файлов .mp3, которые длятся менее 1 секунды. Я хотел бы удалить все аудиофайлы во всех подкаталогах длиной менее 2 секунд. Как я могу это сделать, и является ли файл BAT правильным способом для этого? Ручной способ сортировки файлов во многих, многих каталогах — это очень трудоемкий процесс, поскольку файлы будут сгенерированы за 20-30 дней до того, как я смогу их просмотреть.
Комментарии:
1. Пакетный файл — неправильный способ сделать это. Попробуйте поискать стороннее программное обеспечение, предназначенное для управления аудиофайлами.
2. @Monacraft Есть инструмент командной строки, который упрощает это, Мона.
3. Спасибо всем за ответы, я ценю ответы! Я немного смущен тем, почему он был приостановлен, потому что я специально спросил, как это можно сделать с помощью файла BAT.
Ответ №1:
For a GUI solution:
Условно-бесплатный Total Commander без ограничений может отображать полное дерево каталогов (элемент управления B) и сортировать по размеру файла (элемент управления F6), а также может отображать только файлы MP3, если это необходимо.
Для выполнения этой задачи вам просто нужно будет отметить файлы размером менее x МБАЙТ на одной панели, а затем вы сможете удалить их все сразу.
Доступно другое решение batch file
для удаления файлов MP3 2.999
в секундах или ниже:
— измените [210] на [10], чтобы удалять файлы до 1.999
секунд.
Скачать Mediainfo command line version
с SourceForge
Измените путь к исполняемому файлу в строке 2 ниже
Запустите этот пакетный файл в главной папке дерева файлов
, если команды del, которые вы видите на экране, верны, затем удалите echo
и запустите его снова, чтобы удалить файлы.
@echo off
set "exe=c:UtilMediaInfoMediaInfo.exe"
for /r %%a in (*.mp3) do (
"%exe%" -f "%%a" |find "Duration" | findstr /r ": 00:00:0[210]" >nul amp;amp; echo del "%%a"
)
pause
Комментарии:
1. Джон, небольшая поправка:
[210]
фактически будут удалены файлы длиной до 2,999 секунд, поэтому, если вы измените его на[10]
него, будут удалены файлы длиной до 1,999 секунд. На самом деле процедура просто ищет последовательность послеDuration
: 00:00:0x
, где x равно 2, или 1, или 0, и она имеет конечные цифры в доли секунды.2. Мне пришлось изменить «: 00:00:0[210]» чтобы «00:00:0[210]» чтобы это работало для меня, но я использовал его для файлов .wav, как я мог сделать так, чтобы он удалял файлы в течение 3 секунд v.s. под3 секунды?