我需要正确地工作一个微小的Windows文件(convert.cmd),它可以改变指定文件夹中所有MP3文件的比特率。我需要向批处理文件传递2个参数:
我使用的是Lame.exe编码器。lame.exe位于一个位置,convert.cmd可以与lame.exe位于同一个文件夹中,但带有MP3文件的文件夹可以在任何地方。原始版本(不含参数)是(如果我将convert.cmd放在wit 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而不是128个,我需要传递"%2“,这将是第二个命令行参数,比特率,对于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\
当我从命令行执行convert.cmd时,如下所示:
convert.cmd d:\temp\xxx\ 64
我得到的是d:\temp\xxx\是这样的:
转换后的文件到哪里去了?
谢谢。
发布于 2013-01-23 15:33:06
谢谢,我已经想好怎么写这个剧本了。
如果有人需要这种类型的转换,我们可以选择:使用mp3文件(2 param -位速率)到文件夹的1段完整路径。
(请记住,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.
PAUSEhttps://stackoverflow.com/questions/14427315
复制相似问题