簡體   English   中英

使用sox批量修剪wav文件

[英]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"

此鏈接批量討論了不同的for循環。
該鏈接討論了可以在參數和循環變量上使用的不同路徑操作技術

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM