2013-01-20 24 views
2

我需要正常工作一個小小的Windows批處理文件(convert.cmd),用於更改指定文件夾中所有MP3文件的比特率。我需要傳遞2個參數到批處理文件:Windows Batch Lame編碼語法

  • 的文件夾的路徑與MP3文件我想改變他們
  • 比特率。

我正在使用Lame.exe編碼器。 lame.exe位於一處,convert.cmd可以與lame.exe位於同一個文件夾中,但帶有MP3文件的文件夾可以位於任何位置。原始版本(不帶參數)是(和它的正常工作,如果我在文件夾機智MP3文件放在convert.cmd):

@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 

如何使其按所述工作?

如何確保我的批處理文件轉換現有文件,而不是在某處創建新轉換後的副本?謝謝一堆;)乾杯。

UPDATE

convert.cmd的位置是:

d:\ APPS \拉梅\ convert.cmd,與lame.exe同一文件夾

的MP3文件的位置是:

d:\ TEMP \ XXX \

  • File1.mp3
  • File2.mp3

當我從這樣的命令行convert.cmd執行:

convert.cmd d:\ TEMP \ XXX \ 64

我所得到的在d: \ TEMP \ XXX \是這樣的:

  • File1.mp3.temp
  • File2.mp3.temp

轉換後的文件去了哪裏?

謝謝。

+1

「它不工作」是什麼意思?我們無法看到您的屏幕或從我們所在的位置閱讀您的想法,因此當您說「它無法正常工作」時,您需要向我們描述「它無法正常工作」。除非你這樣做,否則這句話對除了你的每個人都是毫無意義的。如果你想在這裏尋求幫助,請關注這個問題。否則,你正在浪費你的(和我們)的時間。謝謝。 –

+0

你的意思是不工作?您應該提供更多的細節,以便用戶可以提供他們的輸入。 – CuriousMind

+0

我已更新了更多信息的問題。謝謝。 – monstro

回答

0

謝謝,我已經想出瞭如何編寫這個腳本。

如果有人需要這種類型的轉換的,在這裏我們去: 1 PARAM - 完整路徑的文件夾MP3文件 2 PARAM - 比特率轉換爲

(記住,跛。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