2

我需要让一个很小的 ​​Windows 批处理文件 (convert.cmd) 正常工作,它可以更改指定文件夹中所有 MP3 文件的比特率。我需要将 2 个参数传递给批处理文件:

  • 包含 MP3 文件的文件夹的路径
  • 比特率我想把它们改成。

我正在使用 Lame.exe 编码器。lame.exe在一个地方,convert.cmd可以和lame.exe在同一个文件夹,但是MP3文件的文件夹可以在任何地方。原始版本(不带参数)是(如果我将 convert.cmd 放在带有 MP3 文件的文件夹中,它工作正常):

@ECHO OFF
FOR %%f IN (*.mp3) DO (
    D:\Apps\Lame\lame.exe -h -b 128 "%%f" "%%f.temp"
    DEL "%%f"
    REN "%%f.temp" "%%f"
)
PAUSE

我需要传递“%2”而不是 128,它将是第二个命令行参数,比特率,对于 MP3 文件的文件夹路径,我需要传递“%1”。所以,我得到了这个,但它不起作用。

@ECHO OFF
FOR %%f IN (%1\*.mp3) DO (
    D:\Apps\Lame\lame.exe -h -b %2 "%%f" "%%f.temp"
    DEL "%%f"
    REN "%%f.temp" "%%f"
)
PAUSE

如何使其按描述工作?

如何确保我的批处理文件转换现有文件,而不是在某处创建它们的新转换副本?非常感谢;)干杯。

更新

convert.cmd 的位置是:

d:\Apps\Lame\convert.cmd,与 lame.exe 相同的文件夹

MP3文件的位置是:

d:\温度\xxx\

  • 文件1.mp3
  • 文件2.mp3

当我像这样从命令行执行 convert.cmd 时:

转换.cmd d:\temp\xxx\ 64

我在 d:\temp\xxx\ 中得到的是:

  • 文件 1.mp3.temp
  • 文件2.mp3.temp

转换后的文件去哪了?

谢谢。

4

1 回答 1

3

谢谢,我已经想出了如何编写这个脚本。

如果有人需要这种类型的转换,我们在这里: 1 参数 - 包含 mp3 文件的文件夹的完整路径 2 参数 - 要转换为的比特率

(记住,lame.exe 不保留 mp3 标签) ps 谁需要 mp3 标签?:)

@ECHO OFF
ECHO.
ECHO BEGIN CONVERSION
ECHO.
CD %1
DIR *.mp3
ECHO -------------------------------------------------------------------------------
ECHO THESE MP3 FILES WILL BE CONVERTED TO BITRATE %2 KBPS
ECHO -------------------------------------------------------------------------------
PAUSE
FOR %%f IN (*.mp3) DO (
    ECHO -------------------------------------------------------------------------------
    ECHO CONVERTING: %%f
    ECHO -------------------------------------------------------------------------------
    D:\Apps\Lame\lame.exe -h -b %2 "%%f" "%%~nf.wav"
    DEL "%%f"
    REN "%%~nf.wav" "%%f"
)
ECHO.
ECHO END CONVERSION
ECHO.
PAUSE
于 2013-01-23T15:33:06.730 回答