我需要做的是将存储在许多不同文件夹中的.ogg文件转换。我需要批处理脚本从第一个文件夹和文件开始,转换它,然后再去下一个文件。同时,在转换过程中会创建一个wave文件,所以我需要在文件转换结束时删除它以及原始的.ogg文件。这是我目前的代码。它会遍历每个文件夹和文件,执行oggdec并产生大量的wave文件。我需要脚本一次只处理一个文件夹和一个文件。
这段代码基本可以使用,最终结果正常,但不幸的是,我需要它一次只能转换一个文件,并在移动到下一个.ogg文件之前删除原始的.ogg和.wav文件。因此,我需要遵循以下规则: 从第一个文件夹和第一个.ogg文件开始,对文件进行oggdec操作,生成.wav文件,删除.ogg文件,对.wav文件进行lame -m m操作,生成.mp3文件,删除.wav文件,然后继续处理下一个.ogg文件,直到该文件夹中的所有文件都被转换完毕,然后移动到下一个文件夹(可能不在同一个文件夹中)。 以下是一个示例文件夹结构。
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文件之前删除原始的.ogg和.wav文件。因此,我需要遵循以下规则: 从第一个文件夹和第一个.ogg文件开始,对文件进行oggdec操作,生成.wav文件,删除.ogg文件,对.wav文件进行lame -m m操作,生成.mp3文件,删除.wav文件,然后继续处理下一个.ogg文件,直到该文件夹中的所有文件都被转换完毕,然后移动到下一个文件夹(可能不在同一个文件夹中)。 以下是一个示例文件夹结构。
Sounds/voice/greek
Sounds/voice/English
Sounds/voice/russion