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

Добавьте расширение «Щелкните правой кнопкой мыши по файлу .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-файл.

решение1

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

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

решение2

Вот решение с .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"

решение3

Вместо того, чтобы лезть в реестр, вы можете просто поместить .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

Связанный контент