2011-10-10 26 views
3

何をしようとしているのは、さまざまなフォルダに格納されている.oggファイルを変換することです。バッチスクリプトが必要なのは、最初のフォルダとファイルから移動し、それを変換してからそのフォルダの次のファイルに移動するだけです。また、変換処理中に、waveファイルが作成されるので、元の.oggファイルとともにファイル変換の最後に削除する必要があります。これはこれまでの私のコードです。膨大な量のwaveファイルを生成するoggdecを実行するすべてのフォルダーとファイルを通過します。私はこのコードは、上記のほぼ最終的な結果が動作していることで働く時間一度に1つずつフォルダ内のすべてのファイルを1つずつ変換するバッチスクリプトファイル

for /r %%i in (*.ogg) do oggdec "%%i" 
for /r %%i in (*.ogg) do del "%%i" 
for /r %%i in (*.wav) do lame -m m "%%i" 
for /r %%i in (*.wav) do del "%%i" 

@echo off 
etlocal enabledelayedexpansion 
set deletestring=.wav 
echo Ready to start 
echo. 

echo. 
for /f "delims==" %%F in ('dir /b /s /a-d ^| find "%deletestring%"') do (
    set oldfilename=%%~nxF 
    set pathname=%%~dpF 
    set newfilename=!oldfilename:%deletestring%=! 
    Ren "!pathname!!oldfilename!" "!newfilename!" 
    ) 
echo. 
echo All done 

(

で一つのフォルダと一つのファイル操作を行うためのスクリプトを必要とするが、残念ながら私はそれが一度に一つのファイルを変換し、削除する必要があります元の.oggと.wav。次の.oggファイルに移動する前に。私はこの規則に従うことが必要です。 最初のフォルダと最初の.oggファイルは、.oggファイルを生成するファイルにoggdecを行います。 -mm .wavファイルの.mp3ファイルを作成する.wavファイルを次の.oggファイルに移動すると、そのフォルダ内のすべてのファイルが変換され、同じフォルダにない次のフォルダに移動します。 フォルダ構造の例。拡張置換を使用して

Sounds/voice/greek 
Sounds/voice/English 
Sounds/voice/russion 

答えて

5

変数FOR:

  • %%〜ディ - ドライブ文字
  • %%〜パイ - ファイルパス
  • %%〜niの - ファイル名の拡張子を
  • なし

結果のスクリプトは次のとおりです。

for /r %%i in (*.ogg) do (
    oggdec "%%i" 
    del "%%i" 
    lame -m m "%%~dpni.wav" 
    del "%%~dpni.wav" 
) 
+1

ありがとうございました、それは美しく動作します –

関連する問題