Agregue una extensión "Haga clic derecho en un archivo .WAV, Convertir a MP3" al Explorador

Agregue una extensión "Haga clic derecho en un archivo .WAV, Convertir a MP3" al Explorador

Creé una clave en el registro de Windows:

HKEY_CLASSES_ROOT\*\Shell\Convert to MP3\command

con:

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

Funciona, excepto que el nombre del archivo no es exactamente el que quiero:

De entrada test.wavy salida:test.wav.mp3

mientras que me gustaría que el nombre del archivo de salida fuera test.mp3.

También probé con:

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

como en esta respuesta, pero no funciona: ¡la salida es %~n1.mp3entonces!

¿Cómo eliminar la extensión original como esta y reemplazarla por .mp3?

PD: Estoy buscando una solución sin involucrar un archivo .bat, sino solo el registro. Si no es posible, está bien utilizar un archivo bat.

Respuesta1

Suponiendo que ffmpeg.exe está incluido en la variable de ruta, utilice

cmd /q /c para %%I en ("%1") hacer ffmpeg -i %%I -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "%%~nI.mp3"
como una sola línea sin archivo bat.

Respuesta2

Aquí hay una solución con un archivo .BAT (no sé si es posible sin un archivo BAT). La clave es utilizar %~n1.mp3, como se explica.aquí.

Archivo ____LameMP3me.bat:

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

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

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

Respuesta3

En lugar de piratear el registro, puede simplemente colocar el .batarchivo (o un .lnkarchivo que apunte a él) en formato %APPDATA%\Microsoft\Windows\SendTo.

Aquí hay una solución cygwin + bash para el problema de la extensión de archivo, requiere exactamente una línea adicional de código gracias ahttps://www.tldp.org/LDP/abs/html/string-manipulation.html

Lo comenzarías porc:\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

información relacionada