gpt4 book ai didi

batch-file - 通过子目录将.wav文件批量转换为.mp3文件,然后删除其余的.wav文件

转载 作者:行者123 更新时间:2023-12-03 02:29:03 26 4
gpt4 key购买 nike

我在一家广播电台工作,在这里使用称为Skimmer Plus的程序记录日志,该程序从父目录“Air Check”中创建多个子目录,目录树如下所示(降序):

空气检查
年(所以现在是2016年)
月(11月)
天(22)

.wav文件保存在Day目录中,但是没有文件保存在其他任何目录中,仅在“Day”目录中。

我正在努力的工作是首先自动将.wav文件转换为.mp3文件。现在,我只使用the脚的滴管“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 offpause放在其中,当我获得最终程序时,将把它们取出)。

谢谢!

最佳答案

为了使您得到一些体面的技巧,默认情况下,该批次将在当前文件夹中扫描.wav文件。但是有一些可选的命令行参数,可以从Base/FullScan或当前/Year/Month向下扫描整个树。

只要两个echo命令停留在倒数第二行,Lame和Del命令只是Echoed

:: Wav2mpg.cmd
@Echo off & SetLocal EnableExtensions EnableDelayedExpansion
Set Lame="X:\Path\to\your\lame.exe"
Set LameOpts= -V 6 --vbr-old --resample 22.05
Set "Base=\\wideorbit.byui.edu\d\Radio Productions\Air Check"

:: Get current Date
For /f "tokens=1-3 delims=.+-" %%A in (
'wmic os get LocalDateTime^|findstr ^^[0-9]'
) do Set _DT=%%A
Set "year=%_DT:~0,4%"&Set "Month=%_DT:~4,2%"&Set "Day=%_DT:~6,2%"
:: Strip leading zero from Month, Get Monthname
set /a Mo=100%Month%%%100
For /f "tokens=%Mo%" %%A in (
'echo/January February March April May June^
July August September October November December'
) do set MonthName=%%A

If /i "%~1" Equ "/FullScan" Goto :Skipover
If /i "%~1" Equ "/Year" Set Base=%Base%\%Year%
If /i "%~1" Equ "/Month" Set Base=%Base%\%Year%\%MonthName%
If /i "%~1" Equ "" Set Base=%Base%\%Year%\%MonthName%\%Day%

:skipover
PushD "%Base%" || (Echo couldn't pushd %Base%&Pause&Exit /B 1)
For /f "delims=" %%A in (
'Dir /B/S/A-D .\*.wav'
) Do Echo %Lame% %LameOpts% "%%~fA" "%%~dpnA.mp3" && Echo Del "%%~fA"
PopD

关于batch-file - 通过子目录将.wav文件批量转换为.mp3文件,然后删除其余的.wav文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40748535/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com