对于 sox-14-4-2 文件夹中的所有 .wav 文件,我需要在开始时删除静音,将结果复制到现有的子文件夹中Output,然后反转文件,再次删除静音,最后再次反转。
第一个静音删除任务没有问题:
FOR %%A IN (*.wav) do (
sox %%A "Output\%%~nxa" silence 1 0.1 1%
)
不知何故,我无法想象在此之后如何为输出文件夹中的每个 .wav 文件一一执行 3 个 sox 命令?
FOR %%A IN ("Output\sample1.wav") DO (
sox %%A "Output\%%~nxa.wav" reverse
)
对于第二个 sox 命令reverse,一个普遍的问题是我不知道如何将其应用于输出文件夹中的所有 .wav 文件?
FOR %%A ("Output\*.wav")
是错的
这里的第二个 SoX 特定问题是我不能使用相同的名称 - 我不能使用%%~nxa,而是需要使用新名称创建一个新文件,否则输出将被.wav 输出上的 Premature EOF破坏输出文件夹中的文件,它将变为 80 字节。
如何解决这个问题并在所有 .wav 文件上按顺序应用 4 个 SoX 命令?
在使用原始输入文件名完成所有任务后,完成的 .wav 文件应位于子文件夹输出中,同时将所有输入文件保留在上面的文件夹中。
似乎 SoX 在处理未压缩文件时需要一些特殊处理。
写入输出 SoX 时需要未压缩的输入文件仍处于打开状态,因此在这种情况下强制替换总是会导致Premature EOF on .wav 输出文件错误。