Windows上的文件转换和删除

时间:2016-07-22 11:24:04

标签: windows batch-file ffmpeg

我有大约90 000 .m4a个录音,所有录音都根据目的分组在各个子文件夹中。我想将每个转换为.wav,然后在成功转换后删除原始.m4a。由于我无法控制的原因,我在容量有限的Windows机器上执行此操作。我需要删除,因为我没有空间来保留两个版本。

我已经存储了所有文件的位置,并且可以使用ffmpeg和DEL迭代地轻松生成批处理文件以进行转换和删除(这是我在几个地方看到的解决方案)。但有没有办法在删除之前检查转换是否成功?我真的不想意外丢失数据。

1 个答案:

答案 0 :(得分:0)

确保一切正常无法完美检查,但您可以使用类似的方法来确保目标文件存在且至少包含几个字节:

@echo off
setlocal

rem configuration values, toconvert should probably come from %1
set toconvert=source file.mp3
set minsize=100
for %%a in ("%toconvert%") do (
    set target=%%~da%%~pa%%~na.wav
)

rem replace with a real call to ffmpeg
echo call ffmpeg -i "%toconvert%" "%target%"

set size=0
if exist "%target%" (
    for %%a in ("%target%") do (
        set size=%%~za
    )
)

if %size% LSS %minsize% (
    echo ERROR: The file is too small!
) ELSE (
    rem replace with a real call to del
    echo del "%toconvert%"
)