batch-file - 连接/合并日期范围内的 mp3 文件
问题描述
我使用下面的代码来连接/合并 mp3 文件。
我所有的目录都是yyyymmdd
格式的。
第一copy /b
行 ,%result%\%result%\mp3\*.mp3
是一样的20210123\20210123
set day=0
是20210123
(today),如果我更改为
-1
,它是20210122
(yesterday) , -35
, 20201219
, 1
, 20210124
(tomorrow)等。
这是有效的,并且可以很好地连接我的文件 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
其更改echo copy
为显示建议的操作以进行验证。
推荐阅读
- python - csv 列中数百万个数据值的频率
- java - How to compile the JDK from sources?
- python - Python - 如何在类方法中正确模拟 cls 参数以引用静态变量
- amazon-web-services - 我可以使用 Go SDK 2 从 AWS S3 获取前 X 个字节吗
- dart - Flutter image preload
- python - 树中的叶子顺序(Python)
- html - 为什么添加第三个项目会破坏这个 CSS 关键帧滑块?
- c# - DeserializeObject
returns object with null/default values - c - 在C语言中获取多个单词而不获取\n
- java - 如何在 libgdx 中添加背景图像?