在日期范围内连接/合并 mp3 文件

Concatenate / merge mp3 files in date range

我使用下面的代码来 concatenate/merge mp3 文件。

我所有的目录都是yyyymmdd格式。

copy /b%result%\%result%\mp3\*.mp3 相同 20210123210123

set day=020210123 (今天),如果我改成 -1, 20210122 (昨天), -35, 20201219, 1, 20210124 (明天)

这很有效,并且可以很好地连接我的文件的 mp3,但我如何才能将其更改为在日期范围内工作?

示例:

day=0 -> day=-35,即20210123-20201219

我想我需要做一些循环,但我不知道怎么做。

另外一个问题,copy /b,当我 运行 我的 .bat 时,总是覆盖输出 mp3 文件,如果它已经存在,是否可以“自动”跳过?

@echo off
chcp 65001
set day=0
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a"
del "%temp%\%~n0.vbs"
set "YYYY=%result:~0,4%"
set "MM=%result:~4,2%"
set "DD=%result:~6,2%"
set "result=%yyyy%%mm%%dd%"
copy /b %result%\%result%\mp3\*.mp3 %result%\"podcastsí-%result%-all.mp3"
copy /b %result%\mp3\*.mp3 %result%\"podcastsí-%result%-all.mp3"
pause
@echo OFF

set day=0
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "dayend=%%a"
del "%temp%\%~n0.vbs"

set day=-35
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "daystart=%%a"
del "%temp%\%~n0.vbs"


:: My system sets daystart and dayend to yyyymmdd format. Yours may need to be re-calculated.
:: Following if exist looks for directory named "%%y\%%y\mp3" and skips if missing

:: Caution : I have modified your name to "podcasts" below to suit my system

FOR /L %%y IN (%daystart%,1,%dayend%) DO IF EXIST %%y\%%y\mp3\. (
 IF NOT EXIST %%y\"podcasts-%%y-all.mp3" copy /b %%y\%%y\mp3\*.mp3 %%y\"podcasts-%%y-all.mp3" >nul
 IF NOT EXIST %%y\"podcasts-%%y-all.mp3" COPY /b %%y\mp3\*.mp3 %%y\"podcasts-%%y-all.mp3" >nul
)

GOTO :EOF

我不太确定每个目录执行的两个 copy 命令,建议将 copy 更改为 echo copy显示建议的操作以供验证。