我需要让一个很小的 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
转换后的文件去哪了?
谢谢。