【问题标题】:Windows Batch Lame Encode syntaxWindows Batch Lame 编码语法
【发布时间】:2013-01-20 17:45:40
【问题描述】:

我需要让一个小的 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:\temp\xxx\

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

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

convert.cmd d:\temp\xxx\ 64

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

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

转换后的文件去哪了?

谢谢。

【问题讨论】:

  • “它不工作”到底是什么意思?我们无法从我们所在的位置看到您的屏幕或读懂您的想法,因此当您说“它不工作”时,您需要向我们描述“它不工作”的原因。除非你这样做,否则这句话对除了你之外的所有人来说都是毫无意义的。如果您在此处需要帮助,请具体了解问题。否则,你就是在浪费你(和我们)的时间。谢谢。
  • 它不工作是什么意思?您应该提供更多详细信息,以便用户提供他们的输入。
  • 我已经用更多信息更新了这个问题。谢谢。
  • 提供。有什么建议吗?
  • 在删除原始文件之前添加一个echo "%%f" 命令。这应该会提示您文件位置。

标签: batch-file mp3 lame


【解决方案1】:

谢谢,我已经想好怎么写这个脚本了。

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

(记住,lame.exe 不保留 mp3 标签) p.s.无论如何谁需要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

【讨论】:

  • 我只需要循环看起来像:` "c:\Program Files (x86)\Lame For Audacity\lame.exe" -h -V 0 "%%f" "%%~ nf.mp3" ` 出于我的目的,谢谢。我对 Batch 生疏了。 (也将过滤器调整为 *.wav)
猜你喜欢
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2015-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多