Добавить расширение "Щелкните правой кнопкой мыши на файле.WAV, конвертировать в MP3" в проводнике.

Я создал ключ в реестре Windows:

HKEY_CLASSES_ROOT\*\Shell\Convert to MP3\command

с:

"D:\tools\ffmpeg.exe" -i "%1" -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "%1.mp3"

Это работает, за исключением того, что имя файла не совсем то, что я хочу:

Входные данные: test.wav, Выход: test.wav.mp3

тогда как я хотел бы, чтобы выходное имя файла было test.mp3,

Я также попробовал с:

"D:\tools\ffmpeg.exe" ... "%~n1.mp3"

как в этом ответе, но это не работает: вывод %~n1.mp3 затем!

Как удалить оригинальное расширение, как это, и заменить на.mp3?

PS: я ищу решение без участия файла.bat, а только с реестром. Если это невозможно, можно использовать файл bat.

3 ответа

Решение

Предполагается, что ffmpeg.exe включен в переменную пути, используйте

 cmd /q /c для %%I in ("%1") do ffmpeg -i %%I -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "%%~nI.mp3"
как однострочник без файла летучей мыши.

Вот решение с файлом.BAT (не знаю, возможно ли это без файла BAT). Ключ должен использовать %~n1.mp3, как объяснено здесь.

файл ____LameMP3me.bat:

"D:\Documents\software\____PORTABLE\____useful-tools\ffmpeg.exe" -i %1 -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "%~n1.mp3"

В HKEY_CLASSES_ROOT\*\Shell\Lame MP3 me!\command:

"D:\Documents\software\____PORTABLE\____useful-tools\____LameMP3me.bat" "%1"

Вместо взлома реестра вы можете просто поставить .bat файл (или .lnk файл, указывающий на это) в %APPDATA%\Microsoft\Windows\SendTo,

Вот решение cygwin + bash для решения проблемы расширения файла, требующее ровно одну дополнительную строку кода благодаря https://www.tldp.org/LDP/abs/html/string-manipulation.html

Вы бы начали это с c:\cygwin\bin\bash.exe <scriptname> <filename>

#!/bin/bash

FILE_NAME="${1%.*}"

"/cygdrive/d/tools/ffmpeg.exe" -i "\"$1\"" -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "\"${FILE_NAME}.mp3\""

#keep the console window open, uncomment if not necessary
read
Другие вопросы по тегам