【发布时间】:2016-11-22 17:54:21
【问题描述】:
我在一个广播电台工作,我们使用一个名为 Skimmer Plus 的程序进行音频记录,该程序从我们的父目录“Air Check”创建多个子目录,目录树如下所示(降序):
空气检查
年份(所以现在应该是 2016 年)
月份(11 月)
第(22)天
并且.wav文件保存在Day目录中,但是没有任何其他目录保存文件,只是在“Day”目录中。
我正在努力首先将 .wav 文件自动转换为 .mp3 文件。现在我只使用lame dropper“lamedropXPd3-64.exe”,但我也下载了“lame.exe”,如果这样可以更容易使用的话。这是我尝试使用自动转换的代码:
@echo off
PushD for %%i in (*.wav) do "\\wideorbit.byui.edu\d\Radio Productions\Air Check\2016\November\22" -V 6 --vbr-old --resample 22.05 "%%i" "%%~ni.mp3" & PopD
pause
我得到的错误信息是:“文件名、目录名或卷标语法不正确。”
这是我的第一个问题。
第二个问题(删除剩余的 .wav 文件以节省空间)我离工作更近了。这是我的代码:
@echo off
PushD "\\wideorbit.byui.edu\d\Radio Productions\Air Check\2016\November\22" &&(forfiles -m *.wav* -d -0 -c "cmd /c del /s /q @path") & PopD
pause
这可以删除所有文件,但正如您所见,它只会影响那天。我希望它从这里开始工作:
@echo off
PushD "\\wideorbit.byui.edu\d\Radio Productions\Air Check\" &&(forfiles -m *.wav* -d -0 -c "cmd /c del /s /q @path") & PopD
pause
但是当我尝试运行它时,我收到以下错误消息: “错误:没有找到符合指定搜索条件的文件。”
我可以对代码的两个部分进行哪些更改以使其完全可操作?
(另外,我将@echo off 和pause 放在那里以便于测试,当我一起完成最终程序时,我会将它们取出)。
谢谢!
【问题讨论】:
-
我将开始构建用于转换单个
.wav文件的命令行;之后,我会环绕一个for /R循环来处理整个目录树(这就是我认为你想要的);最后,我会在转换工具(lame)之后在循环中插入一个del命令,以便仅在转换成功的情况下执行(我猜lame返回一个非零退出代码/@987654332 @以防出错)...
标签: batch-file audio