將「右鍵點選 .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 for %%I in ("%1") do 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

相關內容