![](/img/trans.png)
[英]Auto Batch Process - Trim, change bit rate and then normalize wav files via sox on Windows
[英]batch trim wav files using sox
我正在尝试使用sox批处理音频文件(wav),在前15秒内进行修剪
当我在单个文件上运行以下命令时,它会通过在同一文件夹中创建文件“ snipped.wav”减去前15秒而起作用
@echo off
cd E:\trim\singlefile
sox original.wav snipped.wav trim 15
但是,当我在多个文件上尝试以下操作时(修剪后的处理过的文件应移至“修剪”文件夹中),它不起作用:
@echo off
cd E:\trim\multiplefiles
mkdir trimmed
FOR %%A IN (%*) DO sox "%%A" "trimmed/%%~nA" trim 15
我猜我在某个地方(严重)错了。 请提出建议。
您以错误的方式使用了for循环。 您必须提供要在括号之间进行迭代的文件。 %*
实际上表示“所有参数”。 您需要使用*.wav
(表示当前文件夹中所有以“ .wav”结尾的文件)或*
(表示当前文件夹中的所有文件)之类的东西。 您可能还希望在双引号中使用%%~A
。 如果周围的双引号已经出现在%%A
,它将删除双引号,否则您可能会有双双引号(例如, ""this should be one string""
),并且双引号的作用也将被撤消。 您确定"trimmed\\%%~nA"
部分吗? 使用~n
您将省略文件名的扩展名(如果%%A
将是original.wav
,则%%~nA
将成为original
)。 如果要在结尾加上文件名和扩展名,请使用~nx
(请参阅结尾处的链接)。
这是您应该拥有的循环:
FOR %%A IN (*.wav) DO sox "%%~A" "trimmed\%%~nA" trim 15
如果您确实希望将扩展名包含在"trimmed\\%%~nA"
"trimmed\\%%~nxA"
部分中,请替换为"trimmed\\%%~nxA"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.