【问题标题】:Trying to trim and fade multiple wav files in remote folder with SOX尝试使用 SOX 修剪和淡化远程文件夹中的多个 wav 文件
【发布时间】:2016-04-10 00:31:01
【问题描述】:

我正在尝试创建一个文件,以便当我将选择的 wav 文件拖放到批处理脚本上时,它会 a.将 wav 复制到子目录 (/webclips),用下划线替换空格,然后尝试从头到 45 秒修剪所有新的 wav 文件。最终我会把它们淡出... 现在脚本复制得很好,但是在运行 trim 命令时出现了几个错误: sox WARN wav:.wav 输入文件上的过早 EOF sox WARN trim: 未到达最后 2 个位置(音频短于预期)。

新的 wavs 文件大小(错误地)为 1Kb。任何帮助,将不胜感激。

这是我的脚本

set FOLDERPATH=%~dp0
set FILEPATH=%~dp1
mkdir "%FILEPATH%webclips"
FOR %%A IN (%*) DO (copy %%A "%FILEPATH%webclips")
cd  "%FILEPATH%webclips"
for %%j in (*.*) do (
set filename=%%~nj
set filename=!filename:.=_!
set filename=!filename: =_!
if not "!filename!"=="%%~nj" ren "%%j" "!filename!%%~xj"
)
c:
cd/
CD "Program Files (x86)\sox-14-4-2"
for %%A in ("%FILEPATH%webclips\*.wav") do sox "%%A" "%FILEPATH%webclips\%%~nxA" trim 0 45
pause

【问题讨论】:

  • sox前加上(会是什么结果
  • 是一样的。我已经删除了错误的“)”错字...

标签: batch-file audio sox windows-console


【解决方案1】:

在最后一行,sox 覆盖了搜索到的 .wav 文件。对于sox,不能那样做。

这样就可以去掉复制原始.wav文件到子文件夹的操作了。

!variable! 是延迟格式,必须在它之前声明setlocal enabledelayedexpansion

批处理文件也可以简化如下,

@echo off
setlocal enabledelayedexpansion
for %%a in (%*) do (
  if not exist "%%~dpawebclips\" md "%%~dpawebclips\"
  set file_name=%%~na
  set file_name=!file_name: =_!
  set file_name=!file_name:.=_!
  ren %%a !file_name!%%~xa
  "%ProgramFiles(x86)%\sox-14-4-2\sox.exe" "%%~dpa!file_name!%%~xa" "%%~dpawebclips\!file_name!%%~xa" trim 0 45
)
pause
exit /b

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    相关资源
    最近更新 更多