Batch file 如何使用sox将.sph文件批转换为.wav

Batch file 如何使用sox将.sph文件批转换为.wav,batch-file,batch-processing,sox,Batch File,Batch Processing,Sox,我有一个包含数百个.SPH文件的文件夹的目录。我需要将所有.SPH文件转换为.wav格式。我采用了以下准则: 但是,它在Windows7上没有任何作用。当我在文件夹中尝试CMD上的代码时,其中一些.SPH是: sox*.SPH output.wav 它将所有*.SPH嵌入到output.wav文件中,这不是我想要的。我需要name1.SPH到name1.wav,name2.SPH到name2.wav 请提供帮助。在Windows 7中,我需要提供目标文件的完整路径,mdkir命令在我以管理员身份

我有一个包含数百个.SPH文件的文件夹的目录。我需要将所有.SPH文件转换为.wav格式。我采用了以下准则:

但是,它在Windows7上没有任何作用。当我在文件夹中尝试CMD上的代码时,其中一些.SPH是:

sox*.SPH output.wav

它将所有*.SPH嵌入到output.wav文件中,这不是我想要的。我需要name1.SPH到name1.wav,name2.SPH到name2.wav


请提供帮助。

在Windows 7中,我需要提供目标文件的完整路径,
mdkir
命令在我以管理员身份运行时出现权限错误,因此请预先设置目标目录并删除
mkdir
命令,然后您的SOX命令应该与此类似(根据您尝试完成的转换或编辑,使用您自己的标志):

for %%a in (*.sph) do sox "%%~a" "%%~na.wav"

cmd文件不应位于文件所在的文件夹中,而应位于安装SOX的文件夹中,然后将要转换的文件拖动到cmd(或bat)文件中。

在SOX目录中创建一个.bat文件,其中包含内容

cd %~dp0
for %%a in (*.sph) do sox "%%~a" "%%~na.wav"
pause

选择和拖动要转换为.BAT文件的文件,和.SPH文件名相同的.wav文件将出现在与.SPH文件相同的文件夹中。

< P> Linux考虑如下:

for f in *.SPH; do sox -t sph "$f" -b 16  -t wav "${f%.*}.wav"; done

你是说
sox
选项吗?请你自己加上这个。不,我是说代码本身不起作用。它什么都不起作用。设置你的
sph
文件夹,例如
cd/d c:\data\sph
和?你为什么不把整个工作答案和细节一起发布呢?
sox*。sph输出。wav
应该将所有文件转换成一个,以便无法工作。因此,您需要尝试使用CMD窗口正确运行上述批处理代码。
cd %~dp0
for %%a in (*.sph) do sox "%%~a" "%%~na.wav"
pause
for f in *.SPH; do sox -t sph "$f" -b 16  -t wav "${f%.*}.wav"; done